仿阿里巴巴行业门户贸易网站模板,搜索各大网站,中国工程建筑网,浙江广厦建设职业技术学院网站前言
之前发表的文章已经讲了如何本地部署Deepseek模型#xff0c;并且如何给Deepseek模型投喂数据、搭建本地知识库#xff0c;但大部分人不知道怎么应用#xff0c;让自己的项目接入AI模型。
文末有彩蛋哦#xff01;#xff01;#xff01; 要接入本地部署的deepsee…前言
之前发表的文章已经讲了如何本地部署Deepseek模型并且如何给Deepseek模型投喂数据、搭建本地知识库但大部分人不知道怎么应用让自己的项目接入AI模型。
文末有彩蛋哦 要接入本地部署的deepseek我就要利用到我们之前部署时安装的ollama服务并调用其API
本地API接口
1、生成文本Generate Text
url: POST /api/generate
功能向模型发送提示词prompt并获取生成的文本。
请求格式
{model: model-name, // 模型名称prompt: input-text, // 输入的提示词stream: false, // 是否启用流式响应默认 falseoptions: { // 可选参数temperature: 0.7, // 温度参数max_tokens: 100 // 最大 token 数}
}响应格式
{response: generated-text, // 生成的文本done: true // 是否完成
}2、生成对话补全
urlPOST /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
urlGET /api/tags
功能列出本地已下载的模型。
响应格式
{models: [{name: model-name, // 模型名称size: model-size, // 模型大小modified_at: timestamp // 修改时间}]
}4、模型的详细信息
urlPOST /api/show
功能查看特定模型的详细信息。
请求格式
{name: model}响应格式
{license: ...,template: ...,details: {...},model_info: {...},modified_at: 2025-02-10T13:26:44.073675708:00
}5、生成嵌入向量
urlPOST /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 serve2、在项目中调用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 classNameai-containerh2AI Page/h2div classNameai-contentdiv classNameoutput-containerpre{outputContent}/pre/divdiv classNameinput-containertextarea ref{inputRef} name id placeholder请输入您的问题/textareabutton onClick{handleSubmit}提交/button/div/div/div)
}
效果 文末彩蛋粉丝福利
DeepSeek使用技巧大全.rarhttps://pan.quark.cn/s/6e769f336d4b