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对话了!如果有进一步需求(如集成到复杂应用中),可以基于此扩展功能。
热门推荐
宠物狗有虫是什么表现?宠物狗常见的寄生虫有哪些?
如何高效利用在线Markdown生成PPT,提升你的演示效率?
电池二次利用走向可持续大循环周期的潜力和挑战(第三篇)
退役≠报废 新能源车旧动力电池如何变废为宝?
无花果的功效与食用指南:从营养到注意事项全解析
肌肉扳机点的肌筋膜机制及其功能障碍和治疗
律师事务所办案流程:从委托到执行的规范化管理
罗马帝国的阴影:四大暴君的统治与影响
2024年《关雎》教学内容与时代背景分析
燃油宝真能有效清除发动机内的积碳,降低油耗吗?对此你有什么看法?
眼睛肿痛的原因是什么
法律责任的规避方式及法律界限探讨
消毒柜的三种消毒原理
单核细胞10.5%严重吗?专业医生解读这一指标的临床意义
33个诗意盎然的名字,每个都藏着独特的自然之美与人生智慧
二战初期,德国登陆英国的作战计划为何无疾而终?
关于判后答疑,你需要了解这些
知识分享|皮革大比拼 鞋革种类的优缺点分析
2024年龙年出生宝宝诗意名字 独具文化韵味的优雅选择
如何进行需求优先级排期
AI能续写红楼梦吗?它会写出科幻味
如何写一封得体的辞职信以维护职业形象与未来发展
实木家具选购全攻略:5大要点助你避开材质陷阱
八卦点穴:传统武术与中医按摩的智慧结晶
谣言揭秘:银川6.2级地震传闻背后的真相
幼儿园监事会制度与职责的探讨
长江电力派发中期红利,全年业绩有望增长
南天竹的肥料选择与施用方法
全球油气市场风向标:能源转型——挑战与机遇并存
柴油发电机并列运行专业指南