DeepSeek-R1前端调用
创作时间:
作者:
@小白创作中心
DeepSeek-R1前端调用
引用
CSDN
1.
https://m.blog.csdn.net/cuijiying/article/details/145950914
本文将详细介绍如何在本地部署DeepSeek-R1大模型,并通过前端JavaScript进行调用。从硬件和软件要求、部署步骤、API调用方法到前端集成,本文将为你提供完整的指导。
前提条件
硬件要求
- 建议至少16GB RAM(运行较小模型如1.5B或7B参数版本),如果运行更大模型(如14B或32B),需要32GB或更高。
- 支持macOS、Linux或Windows的机器。
软件要求
- 已安装Ollama(用于本地运行模型)。
- 基本的终端操作知识。
第一步:本地部署Ollama和DeepSeek-R1
1. 安装Ollama
- 下载Ollama:访问Ollama官网,根据你的操作系统(macOS/Linux/Windows)下载对应版本。
- 安装:
- macOS/Linux:在终端运行安装脚本或解压文件。
- Windows:双击安装程序,按提示完成。
- 验证安装:在终端输入以下命令,检查是否成功安装:
如果返回版本号,说明安装成功。ollama --version
2. 下载DeepSeek-R1模型
- 选择模型大小:DeepSeek-R1有多个版本(1.5B、7B、8B、14B、32B、70B、671B),https://ollama.com/library/deepseek-r1:7b,根据你的硬件选择合适的模型。例如,7B是性能和资源需求的平衡选择。
- 拉取模型:在终端运行以下命令以下载DeepSeek-R1的7B版本:
下载时间取决于网络速度和模型大小,完成后会存储在本地。ollama pull deepseek-r1:7b
3. 启动Ollama服务
- 运行Ollama服务:在终端输入以下命令,启动Ollama并加载DeepSeek-R1:
这会启动一个交互式终端,你可以直接输入提示测试模型。ollama run deepseek-r1:7b
- 后台运行(可选):如果希望Ollama在后台运行并提供API服务,可以启动服务器模式:
默认情况下,Ollama会监听http://localhost:11434。ollama serve
4. 测试模型
- 在终端运行:
如果返回合理回答,说明模型部署成功。ollama run deepseek-r1:7b "你好,什么是AI?"
第二步:通过API调用DeepSeek-R1
Ollama提供了一个RESTful API,可以通过HTTP请求与本地模型交互。默认地址是http://localhost:11434。
1. 测试API
- 使用curl测试API是否正常工作:
curl http://localhost:11434/api/chat -d '{ "model": "deepseek-r1:7b", "messages": [ {"role": "user", "content": "你好,什么是AI?"} ], "stream": false }'
- 返回结果应包含模型的回答,例如:
{ "model": "deepseek-r1:7b", "message": {"role": "assistant", "content": "AI是人工智能(Artificial Intelligence)的简称..."} }
第三步:使用前端JavaScript调用
1. 设置Node.js项目
- 初始化项目:在终端创建一个新目录并初始化Node.js项目:
mkdir deepseek-frontend cd deepseek-frontend npm init -y
- 安装依赖:安装axios或其他HTTP请求库以便从前端调用API:
npm install axios
2. 创建前端代码
创建HTML文件(index.html):
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>DeepSeek-R1前端调用</title> </head> <body> <h1>与DeepSeek-R1对话</h1> <input type="text" id="userInput" placeholder="输入你的问题"> <button onclick="sendMessage()">发送</button> <div id="response"></div> <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> <script src="app.js"></script> </body> </html>
创建JavaScript文件(app.js):
async function sendMessage() { const input = document.getElementById("userInput").value; const responseDiv = document.getElementById("response"); try { const response = await axios.post("http://localhost:11434/api/chat", { model: "deepseek-r1:7b", messages: [{ role: "user", content: input }], stream: false }); const reply = response.data.message.content; responseDiv.innerText = reply; } catch (error) { console.error("调用失败:", error); responseDiv.innerText = "错误: " + error.message; } }
3. 运行前端
- 使用简单的静态服务器运行前端,例如http-server:
npm install -g http-server http-server
- 打开浏览器,访问http://localhost:8080,输入问题并点击“发送”,即可看到DeepSeek-R1的回答。
第四步:优化与扩展
1. 支持流式响应
- 如果需要实时显示模型的流式输出,将stream设置为true,并处理返回的流数据:
async function sendMessage() { const input = document.getElementById("userInput").value; const responseDiv = document.getElementById("response"); responseDiv.innerText = ""; const response = await fetch("http://localhost:11434/api/chat", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ model: "deepseek-r1:7b", messages: [{ role: "user", content: input }], stream: true }) }); const reader = response.body.getReader(); const decoder = new TextDecoder(); while (true) { const { done, value } = await reader.read(); if (done) break; const chunk = decoder.decode(value); const json = JSON.parse(chunk); responseDiv.innerText += json.message.content; } }
2. 添加错误处理
- 在前端添加更完善的错误提示,确保用户体验良好。
3. 部署到远程服务器(可选)
- 如果需要从其他设备访问,可以将Ollama部署到VPS上,并调整OLLAMA_HOST环境变量为0.0.0.0:11434,然后通过公网IP或域名访问。
注意事项
- 跨域问题:如果前端和Ollama不在同一主机,可能遇到CORS问题。可以通过代理解决,或在开发时确保同源。
- 性能:模型越大,响应时间越长。建议根据硬件调整模型大小。
- 安全性:本地部署默认仅限本地访问,若公开API,需设置认证机制。
总结
通过上述步骤,你已经完成了:
- 使用Ollama在本地部署DeepSeek-R1。
- 通过API测试模型可用性。
- 使用前端JavaScript实现与模型的交互。
现在,你可以在浏览器中输入问题,与本地运行的DeepSeek-R1对话了!如果有进一步需求(如集成到复杂应用中),可以基于此扩展功能。
热门推荐
事故调查报告的主要内容是什么
战略上的AI:如何将人工智能融入企业战略
科学探究五个基本步骤
职场:下属如何维护领导尊严和面子?做好了,你的好运也就来了
静脉曲张患者的日常注意事项
激光测距传感器的工作原理及其应用
轿车级别划分标准是什么?
遗嘱继承和法定继承相冲突时的遗产分配原则
完全不一样!免税、不征税、零税率有什么区别?该怎么开票?
百合的最佳搭配食材是什么
北宋词人张先简介:著有《张子野词》,存词一百八十多首
如何制作古诗版面设计?古典诗词版式设计:几步轻松搞定优雅排版!
前端如何通过RESTful接口进行数据交互
招聘外包服务,提升企业招聘效率
狗狗用爪子“扒拉”你,是在给你信号,别看不懂!
视力下降佩戴眼镜也看不清楚?可能是这些原因
四川军校排名及录取分数线表(2025年参考)
Excel窗口冻结和前三行设置详解
胞磷胆碱对脑神经的益处
黄仁勋被指利用美国税法漏洞避税,金额超80亿美元
牛黄解毒片小孩使用指导说明
阿司匹林的作用与功效有哪些
高钾血症病人的心电图可出现什么表现
水瓶男婚后真实状态:独立自主又理性沟通
四轴飞行器的动力学和运动学模型Matlab代码实现
蓝莓价格大跳水,多地“十元三盒”
经期能否做妇科检查?
醋溜白菜的简单制作方法与小技巧分享,提升家庭餐桌的美味体验
深度对比:福建舰与福特号航母,谁更胜一筹?
未来发展前景好的十大行业