在 2026 年 7 月 24 日前迁移 deepseek-chat 和 deepseek-reasoner:路由审计与直接替换方案
DeepSeek 将于 2026 年 7 月 24 日 15:59 UTC 永久下线 deepseek-chat 和 deepseek-reasoner 这两个旧模型别名。届时所有使用这些名称的 API 请求都会失败。本文提供精确的替换模型 ID、代码对比、生产环境审计清单,以及路由配置的更新方法——10 分钟内完成迁移。
在 2026 年 7 月 24 日前迁移 deepseek-chat 和 deepseek-reasoner
2026 年 7 月 24 日 15:59 UTC,DeepSeek 将永久下线 deepseek-chat 和 deepseek-reasoner 这两个旧模型别名。截止时间之后,任何在 model 字段中传入这两个名称的 API 请求都会返回错误。没有宽限期,没有回滚——这是一次硬切断。修复本身只是一行模型名替换,但真正的工作量在于排查你的技术栈中所有使用这些旧名称的地方。本文提供替换映射、前后代码对比、生产环境审计清单,以及 TheRouter 路由配置的更新方式。
来源:DeepSeek V4 Preview Release 公告(检索于 2026-07-17)及 DeepSeek Models & Pricing(检索于 2026-07-17)。
变更内容与原因
DeepSeek 在 2026 年 4 月推出 V4 模型系列时引入了两个新模型 ID:deepseek-v4-flash 和 deepseek-v4-pro。在过渡期(2026 年 4 月至 7 月),旧名称被静默路由:
| 旧别名 | 当前路由目标 | 7 月 24 日之后 |
|---|---|---|
deepseek-chat | deepseek-v4-flash(非思考模式) | 硬故障——别名移除 |
deepseek-reasoner | deepseek-v4-flash(思考模式) | 硬故障——别名移除 |
两个旧别名都指向同一个底层模型(deepseek-v4-flash),只是思考模式的默认值不同。截止时间后,你必须使用明确的 V4 模型 ID。
- 替换三个值,不是三个 SDK。在现有 OpenAI 客户端里改
api_key、base_url、model。请求与响应代码保持不变。 - 显式映射 model ID。目标供应商的 model id 几乎不会和 OpenAI 完全一致。 在业务代码之外维护一份
{ openai_id: target_id }映射。 - 验证流式格式。SSE 分片必须遵循 OpenAI 的
data: {...}+data: [DONE]契约。切生产前先跑一次流式调用。 - 检查限流响应头。部分供应商不返回
x-ratelimit-*。 在包装层 做缺省兜底,缺头不要崩。 - 留回滚路径。用 feature flag 切流;新旧 endpoint 影子并行 24 小时,再正式切换。
替换映射
以下是旧名称到新名称的精确映射:
deepseek-chat → deepseek-v4-flash(非思考模式)
如果你使用 deepseek-chat 做通用对话、代码生成或非推理任务,切换到 deepseek-v4-flash 并禁用思考模式:
# 迁移前(7 月 24 日后失效)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "用一段话解释 TCP/IP。"}]
)
# 迁移后
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "用一段话解释 TCP/IP。"}],
extra_body={"thinking": {"type": "disabled"}}
)
为什么需要 thinking 参数? DeepSeek V4 模型默认启用思考模式。如果你之前使用 deepseek-chat 获取快速、无推理的响应,你需要显式禁用思考模式,以保持相同的行为和成本。
deepseek-reasoner → deepseek-v4-flash(思考模式)
如果你使用 deepseek-reasoner 做链式推理任务,迁移更简单——deepseek-v4-flash 默认就是思考模式:
# 迁移前(7 月 24 日后失效)
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=[{"role": "user", "content": "证明 √2 是无理数。"}]
)
# 迁移后
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "证明 √2 是无理数。"}]
)
由于 deepseek-v4-flash 默认启用思考模式,唯一的改动就是模型名。响应中的 reasoning_content 字段用法不变。
选择 deepseek-v4-pro
如果你需要更强的推理能力且愿意承担更高费用,可以考虑 deepseek-v4-pro 代替 deepseek-v4-flash。两者都支持思考/非思考模式、1M 上下文、工具调用和 JSON 输出。
| 模型 | 输入(缓存未命中) | 输入(缓存命中) | 输出 | 并发上限 |
|---|---|---|---|---|
deepseek-v4-flash | $0.14/M | $0.0028/M | $0.28/M | 2,500 |
deepseek-v4-pro | $0.435/M | $0.003625/M | $0.87/M | 500 |
来源:DeepSeek Models & Pricing(检索于 2026-07-17)。
生产环境审计清单
模型名替换是简单的,难的是在整个生产技术栈中找到每一处 deepseek-chat 和 deepseek-reasoner。逐项排查:
1. 应用代码
# 搜索代码库
grep -rn "deepseek-chat\|deepseek-reasoner" --include="*.py" --include="*.ts" --include="*.js" --include="*.go" --include="*.rs" --include="*.java" .
检查字符串字面量、常量、配置对象和枚举值。
2. 环境变量
# 常见模式
env | grep -i "deepseek\|MODEL"
# 检查 .env、.env.local、.env.production 文件
grep -rn "deepseek-chat\|deepseek-reasoner" .env* 2>/dev/null
3. 配置文件
搜索 YAML、JSON、TOML 和 INI 配置:
find . -name "*.yaml" -o -name "*.yml" -o -name "*.json" -o -name "*.toml" -o -name "*.ini" | \
xargs grep -l "deepseek-chat\|deepseek-reasoner" 2>/dev/null
4. 基础设施即代码
Terraform 变量、Kubernetes ConfigMap、Docker Compose 环境变量段、CI/CD 流水线变量(GitHub Actions secrets、GitLab CI variables)都需要检查。
5. SDK 默认值覆盖
部分框架(LangChain、LlamaIndex、AutoGen)在构造函数 kwargs 或配置文件中接受模型名。搜索 model= 和 model_name= 模式。
6. 数据库和键值存储
如果你在数据库中按用户或租户存储模型偏好,运行查询:
SELECT DISTINCT model_name FROM api_configs
WHERE model_name IN ('deepseek-chat', 'deepseek-reasoner');
7. 第三方集成
如果你通过网关、代理或路由层(如 TheRouter)转发 DeepSeek 请求,更新路由配置中的模型映射。
思考模式:行为变化
DeepSeek V4 将思考和非思考统一到单个模型 ID 下,通过显式开关控制。这与旧的拆分方式有行为差异:
| 旧行为 | 新行为 |
|---|---|
deepseek-chat = 始终非思考 | deepseek-v4-flash + thinking.type: disabled |
deepseek-reasoner = 始终思考 | deepseek-v4-flash + thinking.type: enabled(默认) |
通过 OpenAI SDK 的 extra_body 参数控制思考开关:
# 显式非思考(等同于旧 deepseek-chat 行为)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=messages,
extra_body={"thinking": {"type": "disabled"}}
)
# 显式思考 + 推理力度控制
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=messages,
reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}}
)
推理力度等级: 思考模式下,reasoning_effort 接受 high(默认)或 max。为兼容性,low 和 medium 被静默映射为 high。
来源:DeepSeek Thinking Mode 文档(检索于 2026-07-17)。
响应格式差异
如果你的代码解析响应,从 deepseek-reasoner 迁移时注意以下变化:
reasoning_content字段 ——思考模式下仍然在与content同级返回,解析代码无需改动。- 工具调用 + 思考模式 ——在思考模式下使用工具调用时,中间步骤的
reasoning_content必须在后续 API 调用中传回。这在deepseek-reasoner时也是如此,但如果你是从deepseek-chat工作流新启用思考模式,你的工具调用循环需要更新。 - 多轮上下文 ——在非工具调用轮次中,前序轮次的
reasoning_content传给 API 会被忽略。在工具调用轮次中,它是必需的。
成本影响
如果你之前使用 deepseek-chat(非思考模式),切换到 deepseek-v4-flash 并禁用思考模式,成本不变——输入和输出 token 定价相同。
如果你之前使用 deepseek-reasoner(思考模式),V4-Flash 思考模式的定价也相同——推理 token 按输出 token 计费。
实际使用中,V4-Flash 的每任务成本可能略低,因为底层模型效率更高。我们在迁移中没有观察到价格上涨。
TheRouter 路由配置
如果你通过 TheRouter 路由 DeepSeek,请更新路由规则中的模型别名。TheRouter 已经将 deepseek-v4-flash 和 deepseek-v4-pro 作为一等模型目标支持。
在过渡期内,你可以设置模型映射来同时处理新旧名称:
// 示例:将旧名称路由到 V4 对应模型
const modelMapping = {
"deepseek-chat": "deepseek-v4-flash",
"deepseek-reasoner": "deepseek-v4-flash",
};
7 月 24 日之后,使用旧名称的请求会在 DeepSeek API 层面直接失败,无论你的路由配置如何,所以更新源头(你的应用代码或客户端 SDK 调用)是必须的。
更多 DeepSeek 集成信息,参见我们的 DeepSeek API 完整指南。
时间线与行动项
| 日期 | 行动 |
|---|---|
| 现在 | 执行上述审计清单,grep 整个技术栈。 |
| 7 月 21 日前 | 将模型名变更部署到预发布环境,测试思考模式行为。 |
| 7 月 23 日前 | 部署到生产环境,通过日志确认没有请求使用旧名称。 |
| 7 月 24 日 15:59 UTC | 硬截止。旧别名停止工作。不可回滚。 |
常见问题
Q:deepseek-chat 会返回有意义的错误信息还是静默失败?
DeepSeek 尚未公开记录具体的错误响应格式。预计会收到标准 API 错误(可能是 400 或 404),提示无效的模型名。
Q:能用 deepseek-v4-pro 代替 deepseek-v4-flash 作为直接替换吗?
可以。两者支持相同的 API 接口(思考模式、工具调用、JSON 输出、1M 上下文)。区别在于能力和成本——V4-Pro 约贵 3 倍,但推理能力更强。
Q:deepseek-r1 和 deepseek-v3 这些模型名受影响吗?
不受影响。这些是旧代模型的独立 ID,不在 7 月 24 日的下线公告范围内,截至本文发布时仍然可用。不过我们建议新项目使用 V4 系列。
Q:这会影响托管在其他平台(DashScope、SiliconFlow 等)的 DeepSeek 模型吗?
不会。本次下线仅适用于 DeepSeek 直连 API(api.deepseek.com)。第三方平台使用各自的模型命名规则,请分别查阅其文档。
最后更新:2026-07-17。来源:DeepSeek V4 发布说明、DeepSeek Models & Pricing、DeepSeek Thinking Mode。