在项目中调用本地Deepseek(接入本地Deepseek)
- 电脑硬件
- 2025-08-27 22:30:02

前言
之前发表的文章已经讲了如何本地部署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 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).response console.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: pan.quark /s/6e769f336d4b
在项目中调用本地Deepseek(接入本地Deepseek)由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“在项目中调用本地Deepseek(接入本地Deepseek)”