在项目中调用本地Deepseek(接入本地Deepseek)

server/2025/2/22 16:05:09/
AI.html" title=ai>aidu_pl">

前言

之前发表的文章已经讲了如何本地部署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": "...","detAI.html" title=ai>ails": {...},"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 = awAI.html" title=ai>ait 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 } = awAI.html" title=ai>ait 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.html" title=ai>ai-contAI.html" title=ai>ainer'><h2>AI Page</h2><div className='AI.html" title=ai>ai-content'><div className='output-contAI.html" title=ai>ainer'><pre>{outputContent}</pre></div><div className='input-contAI.html" title=ai>ainer'><textarea ref={inputRef} name="" id="" placeholder='请输入您的问题'></textarea><button onClick={handleSubmit}>提交</button></div></div></div>)
}

效果

在这里插入图片描述


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

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


http://www.ppmy.cn/server/169416.html

相关文章

加强地面塌陷隐患防治,构筑城市地质安全防线

随着我国城市现代化建设进程的加快&#xff0c;城市基础建设和房地产开发呈现出高速发展的态势。然而&#xff0c;在这一繁荣景象的背后&#xff0c;城市地面塌陷问题却日益凸显&#xff0c;成为影响城市地质环境安全的重要因素之一。与传统的地质灾害相比&#xff0c;城市地面…

2025.2.19——1500

2025.2.19——1500 A 1500 B 1500 C 1500 D 1500 ------------------------------------------------ 思维/图论位运算/思维数学/思维构造/思维 A 存在路径即在一个连通块。加上必须加的边&#xff0c;删去必须要删去的边。并查集维护查询&#xff0c;考虑一下删边和加边…

如何通过Windows环境远程控制MusicGPT在线生成高质量AI音乐

文章目录 前言1. 本地部署2. 使用方法介绍3. 内网穿透工具下载安装4. 配置公网地址5. 配置固定公网地址 前言 在这个快节奏的时代&#xff0c;音乐不仅是心灵的慰藉&#xff0c;更是创意的源泉。试想一下&#xff0c;在忙碌的工作间隙或悠闲的周末午后&#xff0c;只需轻敲几行…

Redis数据库面试——数据结构类型知识

大家好&#xff0c;这里是Good Note&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Redis 提供的5种基本数据结构类型和4种特殊类型&#xff0c;除此之外&#xff0c;还有8种底层数据结构&#xff0c;每种结构类型有其特点和适用场…

数字可调控开关电源设计(论文+源码)

1 设计要求 在本次数字可调控开关电源设计过程中&#xff0c;对关键参数设定如下&#xff1a; &#xff08;1&#xff09;输入电压&#xff1a;DC24-26V,输出电压&#xff1a;12-24&#xff08;可调&#xff09;&#xff1b; &#xff08;2&#xff09;输出电压误差&#xf…

Docker 多阶段构建:优化镜像大小

在 Docker 中&#xff0c;构建镜像时&#xff0c;我们通常会将应用及其所有依赖打包到镜像中。然而&#xff0c;随着时间的推移&#xff0c;镜像的大小会随着依赖项和构建工具的增加而变得越来越大&#xff0c;这不仅增加了存储成本&#xff0c;还会降低容器启动速度。多阶段构…

VMware新建虚拟机

看看自己的电脑是什么内核&#xff0c;有几个处理器 再分配给虚拟机 镜像文件需要自己安装下载地方https://mirrors.aliyun.com/centos/?spma2c6h.13651104.d-2001.8.3fb1320cuI1jeS 然后就出现了 然后开启虚拟机&#xff0c;等待 等待之后如下&#xff0c;选择语言 等待一段时…

【前端】如何安装配置WebStorm软件?

文章目录 前言一、前端开发工具WebStorm和VS Code对比二、官网下载三、安装1、开始安装2、选择安装路径3、安装选项4、选择开始菜单文件夹5、安装成功 四、启动WebStorm五、登录授权六、开始使用 前言 WebStorm 是一款由 JetBrains 公司开发的专业集成开发环境&#xff08;IDE…