您的位置:首页 > 财经 > 金融 > 营销型网站制作培训_大连开发区社保网站_seo需要付费吗_新闻头条最新

营销型网站制作培训_大连开发区社保网站_seo需要付费吗_新闻头条最新

2025/2/22 15:05:39 来源:https://blog.csdn.net/weixin_44646763/article/details/145721678  浏览:    关键词:营销型网站制作培训_大连开发区社保网站_seo需要付费吗_新闻头条最新
营销型网站制作培训_大连开发区社保网站_seo需要付费吗_新闻头条最新

前言

之前发表的文章已经讲了如何本地部署Deepseek模型,并且如何给Deepseek模型投喂数据、搭建本地知识库,但大部分人不知道怎么应用,让自己的项目接入AI模型。

文末有彩蛋哦!!!

要接入本地部署的deepseek,我就要利用到我们之前部署时安装的ollama服务,并调用其API

本地API接口

1、生成文本(Generate Text)

url: POST /api/generate

功能:向模型发送提示词(prompt),并获取生成的文本。

请求格式:

{"model": "<model-name>",  // 模型名称"prompt": "<input-text>", // 输入的提示词"stream": false,          // 是否启用流式响应(默认 false)"options": {              // 可选参数"temperature": 0.7,     // 温度参数"max_tokens": 100       // 最大 token 数}
}

响应格式:

{"response": "<generated-text>", // 生成的文本"done": true                    // 是否完成
}
2、生成对话补全

url:POST /api/chat

功能:支持多轮对话,模型会记住上下文。

请求格式:

{"model": "<model-name>",  // 模型名称"messages": [             // 消息列表{"role": "user",       // 用户角色"content": "<input-text>" // 用户输入}],"stream": false,          // 是否启用流式响应"options": {              // 可选参数"temperature": 0.7,"max_tokens": 100}
}

响应格式:

{"message": {"role": "assistant",    // 助手角色"content": "<generated-text>" // 生成的文本},"done": true
}
3、列出本地模型(List Models)

url:GET /api/tags

功能:列出本地已下载的模型。

响应格式:

{"models": [{"name": "<model-name>", // 模型名称"size": "<model-size>", // 模型大小"modified_at": "<timestamp>" // 修改时间}]
}
4、模型的详细信息

url:POST /api/show

功能:查看特定模型的详细信息。

请求格式:

{"name": model}

响应格式:

{"license": "...","template": "...","details": {...},"model_info": {...},"modified_at": "2025-02-10T13:26:44.0736757+08:00"
}
5、生成嵌入向量

url:POST /api/embed

功能:为输入的文本生成嵌入向量。

请求格式:

{"model": model,"input": text
}

响应格式:

{"model": "deepseek-r1:7b","embeddings": [[0.00245497,...]],"total_duration": 8575498700,"load_duration": 7575292200,"prompt_eval_count": 4
}

使用实例

1、启动 Ollama 服务
在使用 API 之前,需要确保 Ollama 服务正在运 行。可以双击打开或通过以下命令启动服务:

ollama serve

2、在项目中调用API(这里以react为例实现简单效果)

AI.jsx:

import { useEffect, useState, useRef } from 'react';
import './AI.css';export default function AI() {const [outputContent, setOutput] = useState('');// ref 存储textarea 内容const inputRef = useRef(null);useEffect(() => {// const userPrompt = "介绍";// streamOllamaResponse(userPrompt);}, []);let handleSubmit = async (event) => {event.preventDefault();streamOllamaResponse(inputRef.current.value);}async function streamOllamaResponse(prompt) {const url = 'http://localhost:11434/api/generate';const headers = {'Content-Type': 'application/json'};const data = {"model": "deepseek-r1:7b","prompt": prompt,"stream": true};const response = await fetch(url, {method: 'POST',headers: headers,body: JSON.stringify(data)});if (!response.ok) {console.error(`请求失败,状态码: ${response.status}`);return;}const reader = response.body.getReader();const decoder = new TextDecoder('utf-8');while (true) {const { done, value } = await reader.read();if (done) {break;}const chunk = decoder.decode(value, { stream: true });const chunkResponse = JSON.parse(chunk).responseconsole.log(chunkResponse);setOutput((outputContent) => outputContent + chunkResponse);}}return (<div className='ai-container'><h2>AI Page</h2><div className='ai-content'><div className='output-container'><pre>{outputContent}</pre></div><div className='input-container'><textarea ref={inputRef} name="" id="" placeholder='请输入您的问题'></textarea><button onClick={handleSubmit}>提交</button></div></div></div>)
}

效果

在这里插入图片描述


文末彩蛋!!(粉丝福利)

DeepSeek使用技巧大全.rar:https://pan.quark.cn/s/6e769f336d4b

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com