deepseek官方服务器又挂了,api和网页哪个都用不了,是不是该考虑下个蒸馏小模型到本地
API 文档原址:https://api-docs.deepseek.com/zh-cn/
javascript 代码及注释:
构造及发送请求:
const OpenAI = require('openai');// 导入openai包
// 实例化openai对象,并传入DeepSeek API Key
const openai = new OpenAI({
baseURL: 'https://api.deepseek.com',
apiKey: '<DeepSeek API Key>'
});
//构造请求函数
const completion = await openai.chat.completions.create({
messages: [{ role: "system", content: "<示例>You are a helpful assistant." }],
model: "deepseek-chat"||"deepseek-reasoner",//选择模型,deepseek-chat为聊天模型,deepseek-reasoner为推理模型,写的时候肯定不用||,只是为了都展示出来
stream: false,//暂只写非流式吧
});
传入json范例(messages):
messages = [{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt}]
处理响应:
const reply = completion.choices[0].message.content;
console.log(reply);//举例,输出回复
添加对话历史(与api无关):
const sessionHistory = new Map();
// 初始化或获取对话历史,刷新页面历史记录不消失
if (!sessionHistory.has(sessionId)) {
sessionHistory.set(sessionId, []);
}
const history = sessionHistory.get(sessionId);
// 添加用户消息到历史
history.push({ role: "user", content: message });
//添加机器回复到历史
history.push({ role: "assistant", content: reply });
//添加历史到请求消息中
const messages = [
{略},
...history,//将history数组展开添加到messages数组中
]
限定前后缀:
messages = [
{略},
{"role": "assistant", "content": "```python\n", "prefix": True}//添加前缀
]
response = client.chat.completions.create(
<略>
stop=["```"],//添加后缀
)
接收深度思考思维链:
reasoning_content = response.choices[0].message.reasoning_content
从node环境中获取环境变量作为apikey降低泄露风险(与其api无关):
require('dotenv').config();//加载环境变量,文件为同目录下名为.env的文件
apiKey=process.env.DEEPSEEK_API_KEY//仅为示例
简单的前后端双层请求处理:
//后端
//后端准备工作
const express = require('express');//构建服务器
const cors = require('cors');//同源策略
const app = express();
//中间件
app.use(cors());
app.use(express.json());
app.use(express.static('public'));
//前端
const response = await fetch('/chat', {//路径为举例
//利用前端数据构造请求并发往后端
}
//后端
app.post('/chat', async (req, res) => {
//获取前端请求的参数
const { sessionId, systemPrompt, message,model, temperature } = req.body;//参数为举例
//构造请求并接收响应
//发送响应到前端
res.json({ reply });
}
//前端
//接收到后端的json数据
const data = await response.json();
//处理数据并响应
联网搜索还需要再看看
此方悬停