DeepSeek 这轮热度蔓延到开发工作流之后,标题里“跟 DeepSeek 拼了”这类说法,本质上讲的是模型厂商在闭源与开源、价格与效果之间重新调整产品线。Meta 的 Llama 系列和 DeepSeek 的开源模型经常被放在一起比较,新闻层面的竞争可以聊很多,但对开发者更实际的问题是:DeepSeek 的 API 到底怎么调,怎么接进 Codex、VS Code、企业微信机器人,以及为什么多轮对话会突然抛出 HTTP 400。这篇文章围绕这三条主线展开,目标是从 API Key 准备开始,走通一次真实的 DeepSeek 接入,讲透 reasoning_content 导致的高频报错,并整理一份本地部署与成本控制的实践清单。
全文按“概念—环境—接入—排错—部署—生产建议”的顺序组织,读者可以照着操作。代码以 Python 和命令行示例为主,配置片段在落地时换成自己的包名、路径、密钥和模型标识即可。
1. 先搞清楚 DeepSeek API 的模型形态与响应结构
接入前先别急着写代码。大量报错并不是网络问题,而是对模型形态和响应字段的理解偏差。DeepSeek 开放平台对外主要提供两个模型标识: deepseek-chat 和 deepseek-reasoner 。二者共用同一套 API 地址和鉴权方式,但请求参数与响应结构不完全相同,很多工具集成问题都出在这里。
1.1 chat 模型与 reasoner 模型怎么选
deepseek-chat 是通用对话模型,响应快,支持 temperature 、 top_p 等生成参数,适合普通问答、代码补全、文本改写、批量离线任务。 deepseek-reasoner 是思考模型,会在最终答案之前输出一段思考过程,适合数学推理、复杂代码生成、逻辑分析这类对正确性要求更高的场景。
| 对比维度 | deepseek-chat | deepseek-reasoner |
|---|---|---|
| 适用任务 | 通用问答、日常编码、改写、分类 | 数学、逻辑推理、复杂代码 |
| 响应速度 | 快 | 慢,因为要多一步思考 |
| 生成参数 | 支持 temperature、top_p 等 | 按官方约束,仅支持 max_tokens、stop 等 |
| 响应字段 | 主要返回 content | 返回 content 与 reasoning_content |
| 多轮要求 | 普通消息回传即可 | 必须回传 reasoning_content |
在 Codex、VS Code 这类编码代理里,如果追求代码质量,reasoner 的吸引力更强;如果追求速度和成本,chat 更稳。一个常见策略是默认使用 deepseek-chat ,只有明确需要深度推理时切换到 deepseek-reasoner 。
1.2 响应里为什么多出 reasoning_content
reasoner 模型返回的 assistant 消息通常包含两个文本字段:
-
content:最终答案,也就是真正展示给用户的内容。 -
reasoning_content:模型思考过程,用于呈现思维链。
API 没有把思考过程和最终答案合并到同一个字段,而是单独返回。这样设计的目的是让调用方能够区分“推理过程”和“输出结果”,也方便做日志分析、成本统计和内容过滤。
容易误解的地方是: reasoning_content 并不是端到端必需的额外信息,而是多轮对话中的“状态”。一旦上一轮 assistant 消息带有 reasoning_content ,后续请求把这段历史回传给 API 时,就必须原样带上这个字段。否则,API 会认为上下文不一致,直接返回 400。
1.3 兼容 OpenAI 协议,但字段不能直接照搬
DeepSeek 的 API 是 OpenAI 兼容的,所以很多 OpenAI SDK 可以直接通过修改 base_url 来调用。但这不意味着所有 OpenAI 客户端都能无缝切换,主要差异有三个:
- 端点路径不完全一致。OpenAI 的新客户端如 Codex CLI 默认请求
/responses,而 DeepSeek 开放的是/chat/completions,中间需要一个转换层。 - 响应字段多出
reasoning_content。客户端如果只读取content,会把思考过程丢掉,后续多轮请求就缺少回传字段。 - reasoner 对采样参数有限制。直接传
temperature、top_p等参数,可能报参数非法。
所以,用 OpenAI 生态工具接 DeepSeek 时,不能只看“能不能连通”,还要看这个工具是否感知并正确处理 reasoning_content 。
2. 环境准备:从 API Key 到最小调用
这一节的目标是先把最底层链路跑通,再进入 Codex、VS Code 等工具集成。底层链路越清晰,后面排错越容易。
2.1 开放平台准备 Key 与余额
在 DeepSeek 开放平台注册账号后,进入 API Keys 页面创建密钥。创建时要把 Key 完整复制保存,很多平台只在创建那一刻完整展示一次。
密钥不要写进前端代码、Git 仓库或日志。个人学习阶段可以先放在环境变量里:
export DEEPSEEK_API_KEY="sk-xxxx"
DeepSeek 采用预付费模式,调用前需要确保账户余额充足。余额不足时,即使 Key 正确也会返回 402 或类似错误。
325




被折叠的 条评论
为什么被折叠?



