以下为使用 DeepSeek V4 API 的通用流程(以官方文档为准):
- 准备工作
- 注册并获取 API Key。
- 查阅官方文档,确认 Base URL(例如 https://api.deepseek.com 或包含 /v1 的路径)与 V4 对应的模型 ID(例如 <MODEL_ID>,以文档列为准)。
- 确认计费、限流策略与地区可用性。
- 最小可用请求(Chat Completions 风格)
- HTTP 方法:POST
- 认证:Authorization: Bearer YOUR_API_KEY
- Content-Type: application/json
- 示例(cURL):
curl https://api.deepseek.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "<MODEL_ID>",
"messages": [
{"role": "user", "content": "用一句话介绍你自己。"}
],
"stream": false
}'
- 关键字段
- model:V4 模型标识(按文档填写)。
- messages:对话消息数组,包含 role(system/user/assistant)与 content。
- stream:是否开启流式返回(true/false)。
- temperature、top_p、max_tokens、presence_penalty、frequency_penalty 等采样与长度控制参数(按需配置)。
- 流式响应(SSE)
- 将 stream 设为 true,服务端以 SSE 方式分片返回。
- 客户端需按行解析以 data: 开头的事件流,逐步拼接 content。
- 结束标志通常为 [DONE] 或空事件(以文档为准)。
- SDK 用法(OpenAI 兼容场景的示例)
- 若文档标注为 OpenAI 协议兼容,可在 SDK 中配置 base_url 与 api_key。
- Python(示意):
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.deepseek.com/v1")
resp = client.chat.completions.create(
model="<MODEL_ID>",
messages=[{"role": "user", "content": "你好"}],
stream=False
)
print(resp.choices[0].message.content)
- Node.js(示意):
import OpenAI from "openai"
const client = new OpenAI({ apiKey: process.env.DEEPSEEK_API_KEY, baseURL: "https://api.deepseek.com/v1" })
const res = await client.chat.completions.create({
model: "<MODEL_ID>",
messages: [{ role: "user", content: "你好" }],
stream: false
})
console.log(res.choices[0].message.content)
- 错误与重试
- 401/403:检查密钥与权限。
- 429:触发限流,使用指数退避重试,并优化并发与速率。
- 5xx:服务端暂时异常,建议短暂延迟后重试,设置超时与重试上限。
- 在客户端实现超时、重试与幂等(如幂等键)策略。
- 最佳实践
- 明确 token 预算:控制输入输出长度,必要时做摘要或截断。
- 固定或限制 temperature/top_p 以获得稳定输出;需要多样性时再调高。
- 在 system 中明确角色与约束,减少提示词歧义。
- 对流式输出做增量渲染与取消控制(如用户中断时关闭连接)。
- 记录请求/响应与用量日志,便于排障与成本核算。
- 进阶能力(按文档支持情况)
- 工具/函数调用、JSON 模式、日志概率(logprobs)、多模态输入、文件/向量检索等,如为 V4 的特性,请对照官方说明使用相应字段与端点。
- 安全与合规
- 不在客户端暴露明文密钥;使用服务端代理或环境变量管理。
- 遵守内容与数据合规政策;谨慎处理个人信息与业务数据。
如果你提供:目标语言/运行环境(Python、Node.js、Java 等)、你要用的 V4 模型 ID 与 Base URL,我可以给出可直接运行的最小化示例。
对开发者来说,这种组合之所以重要,原因很简单:它在降低迁移摩擦的同时,提高了你所能构建的上限。你不需要学习全新的 API 形态。你只需更新模型名称、保留 base URL,并基于更大的上下文窗口与更新的推理能力进行交付。DeepSeek 的官方文档明确指出,应保留 base URL,并将 model 参数更改为 deepseek-v4-pro 或 deepseek-v4-flash。