DeepSeek 提供了兼容 OpenAI 格式的 API,这意味着你可以用熟悉的 openai SDK 直接接入,只需改一下 baseURL。
本文从零开始,带你完成 Node.js 后端接入 DeepSeek 的全流程。
为什么选 DeepSeek?
- 兼容 OpenAI 格式:无需学习新 SDK,迁移成本极低
- 价格实惠:相比 GPT-4 系列,成本大幅降低
- 中文能力强:对中文场景的理解和生成表现出色
- 模型丰富:提供通用对话、推理专用等多个模型
可用模型
| 模型 ID | 用途 | 特点 |
|---|---|---|
deepseek-chat | 通用对话 | 日常使用首选,兼顾速度与质量 |
deepseek-reasoner | 深度推理 | 数学、编程、逻辑推理更强 |
根据场景选择:一般问答用 deepseek-chat,复杂推理用 deepseek-reasoner。
环境准备
1. 获取 API Key
登录 DeepSeek 开放平台,在 API Keys 页面创建密钥。
2. 安装依赖
1 | npm install openai |
DeepSeek 兼容 OpenAI SDK,不需要额外安装其他包。
基础调用
非流式(一次性返回)
1 | import OpenAI from 'openai'; |
流式输出(逐字返回)
适合需要实时展示回复的场景,如聊天界面:
1 | const stream = await client.chat.completions.create({ |
多轮对话
维护 messages 数组,每次把 AI 的回复追加进去:
1 | const messages: OpenAI.Chat.Completions.ChatCompletionMessageParam[] = [ |
错误处理与重试
生产环境必须处理网络波动和限流:
1 | async function callWithRetry( |
Midway.js 集成示例
如果你用的是 Midway.js 框架,可以封装一个 Service:
1 | // src/service/deepseek.service.ts |
最佳实践
1. API Key 安全
永远不要把 Key 硬编码:
1 | // ❌ 错误 |
2. System Prompt 设计
好的系统提示词能显著提升回复质量:
1 | const systemPrompt = `你是98潮玩平台的智能助手。请遵守以下规则: |
3. Token 消耗控制
几点省钱技巧:
max_tokens限制单次回复长度,防止费用失控- 多轮对话时裁剪历史,避免超出上下文窗口(64K token)
temperature控制随机性:0.0 最确定,1.0 最发散
1 | const completion = await client.chat.completions.create({ |
总结
DeepSeek 接入非常简单——和用 OpenAI 的体验几乎一致,改个 baseURL 就行。记住几个关键点:
- API Key 用环境变量管理,不要硬编码
- 生产环境做好错误重试和超时处理
- 善用 System Prompt 引导模型行为
- 注意 Token 消耗,控制成本
如果你已经在用 OpenAI 的 SDK,切换到 DeepSeek 几乎零成本。