博客 • AI / API
DeepSeek V4-Pro 是什么?最新模型、API、Function Calling、JSON 输出完整解析
你在接 DeepSeek API 做 Agent,文档里同时出现deepseek-v4-pro、deepseek-v4-flash和已经停用的deepseek-chat。Function Calling 返回的arguments偶尔不是合法 JSON,JSON Mode 和 Strict Schema 又各走哪条路径?
DeepSeek V4-Pro是 DeepSeek V4 系列里的旗舰 MoE 模型,2026 年 8 月 13 日正式 GA(构建号 DeepSeek-V4-Pro-0813)。API 调用方式不变:base_url仍是https://api.deepseek.com,把model设为deepseek-v4-pro即可。
它和 OpenAI Chat Completions 兼容,也支持 Anthropic 风格接口;Function Calling、JSON 输出、Thinking 三档 effort 都在同一套 API 里。
本文将说明:
- V4-Pro / V4-Flash 分别是什么、怎么选
- 最小可用的 Chat Completions 请求
- Function Calling 的完整工具循环
- JSON Mode 与 beta Strict Schema 的差异
- 调试模型输出时 JSONNote 能帮你做什么
先记住这一点:V4-Pro 的 API 表面和 OpenAI 几乎一样,但tool_calls[].function.arguments仍是模型「生成出来的 JSON 字符串」,不保证每次合法。下面按「模型族 → 接入 → 工具调用 → JSON 输出 → 选型」拆开。
DeepSeek V4-Pro 是什么
DeepSeek V4 于 2026 年 4 月 24 日通过 API 发布,采用 Mixture-of-Experts 架构。V4-Pro 是其中参数规模最大的版本:总参数量约 1.6T,每次前向激活约 49B。同系列的deepseek-v4-flash更轻(284B / 13B active),面向延迟和成本敏感场景。
2026 年 8 月 13 日的 GA 版本显著增强了 Agent 能力——官方在 Terminal Bench 2.1、Toolathlon-Verified 等基准上报告了生产环境级别的提升。对开发者来说,变化主要体现在:
- 多步工具调用更稳定,更少「空跑一圈再回答」
- 原生支持 OpenAIResponses API格式(适配 Codex 工作流)
- Thinking 模式新增
low/high/max三档 effort
如果你已经在用 OpenAI SDK 调别的模型,切到 V4-Pro 通常只需改base_url、api_key和model三个字段。
V4 模型族与 legacy 名称
| API model 参数 | 定位 | 说明 |
|---|---|---|
deepseek-v4-pro |
旗舰 Agent / 推理 | 2026-08-13 GA,复杂任务首选 |
deepseek-v4-flash |
快速 / 经济 | 2026-07-31 正式版,高并发友好 |
deepseek-chat(已停用) |
legacy | 2026-07-24 前指向 V4-Flash 非思考模式 |
deepseek-reasoner(已停用) |
legacy | 2026-07-24 前指向 V4-Flash 思考模式 |
新项目和 CI 脚本请直接写deepseek-v4-pro或deepseek-v4-flash,不要继续依赖 legacy 别名——它们在 2026 年 7 月 24 日已宣布停用。
API 接入要点
最小 Chat Completions 请求
DeepSeek API 与 OpenAI Chat Completions 格式兼容。Python 示例(需安装openai包):
from openai import OpenAI
client = OpenAI(
api_key="YOUR_DEEPSEEK_API_KEY",
base_url="https://api.deepseek.com",
)
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "用 JSON 列出三个 HTTP 状态码及含义"},
],
)
print(resp.choices[0].message.content)
三个容易踩坑的细节
-
1
API 无状态
每次请求都要带上完整
messages历史。服务端不会替你记住上一轮 tool 结果。 -
2
Prompt Cache
响应
usage里可能出现prompt_cache_hit_tokens。相同前缀重复调用会命中缓存,降低计费。 -
3
峰值 / 低谷定价
2026 年 8 月 16 日起实行分时段定价,低谷约为峰值一半。批处理任务可错峰调度。
Function Calling 完整流程
Function Calling 让模型在需要查数据库、调 HTTP、跑计算时,先返回结构化的工具调用,而不是直接编造答案。V4-Pro 走 OpenAI 风格的tools数组。
1. 定义 tools(JSON Schema)
{
"type": "function",
"function": {
"name": "get_order",
"description": "按订单号查询订单状态",
"parameters": {
"type": "object",
"properties": {
"order_id": { "type": "string", "description": "例如 ORD-10442" }
},
"required": ["order_id"]
}
}
}
2. 模型返回 tool_calls
当模型决定调用工具时,finish_reason为"tool_calls",message.content通常为空,实际指令在tool_calls数组里:
{
"choices": [{
"message": {
"role": "assistant",
"content": "",
"tool_calls": [{
"id": "call_0_f1c29a44",
"type": "function",
"function": {
"name": "get_order",
"arguments": "{\"order_id\": \"ORD-10442\"}"
}
}]
},
"finish_reason": "tool_calls"
}]
}
注意:arguments是字符串,需要你自己json.loads。官方文档明确说模型不保证每次生成合法 JSON,也可能幻觉出 schema 里没有的字段。
3. 执行函数并回传 tool 消息
import json
messages = [{"role": "user", "content": "查一下 ORD-10442 的状态"}]
tools = [/* 上面的 get_order 定义 */]
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=messages,
tools=tools,
)
msg = resp.choices[0].message
if msg.tool_calls:
messages.append(msg) # 保留 assistant 的 tool_calls
call = msg.tool_calls[0]
try:
args = json.loads(call.function.arguments)
except json.JSONDecodeError:
args = {} # 降级或重试
result = get_order(**args) # 你的业务函数
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result, ensure_ascii=False),
})
# 再次请求,模型基于真实数据生成最终回答
final = client.chat.completions.create(
model="deepseek-v4-pro",
messages=messages,
tools=tools,
)
tool_choice 行为
| tool_choice | 含义 | 典型用途 |
|---|---|---|
"auto"(默认) |
模型自行决定是否调工具 | 通用 Agent |
"none" |
禁止工具调用 | 纯文本回答、对照测试 |
{"type":"function","function":{"name":"…"}} |
强制指定函数 | 流水线某步必须走特定工具 |
max_tokens过小会导致 tool call 的argumentsJSON 被截断,finish_reason变成length且参数不完整。Agent 场景建议给 completion 留足预算。
JSON 输出与 Strict 模式
JSON Mode(response_format)
当你只需要模型输出一段 JSON、不需要调外部工具时,用 JSON Mode:
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "只输出合法 JSON,不要 markdown 代码块"},
{"role": "user", "content": "生成一个含 name、age 的用户对象"},
],
response_format={"type": "json_object"},
)
raw = resp.choices[0].message.content
data = json.loads(raw) # 仍建议 try/except
DeepSeek 在 V2 时代就把内部 JSON 解析率从 78% 提到了 85%;配合正则清洗后可达 97%。V4 系列在此基础上继续优化,但生产环境仍应在业务层校验,不要把json.loads成功当作 schema 正确。
Strict Schema(beta)
Function Calling 若要求参数严格符合 JSON Schema,可启用 beta Strict 模式:
base_url改为https://api.deepseek.com/beta- 在 function 定义里设
"strict": true - Schema 里所有
object的properties必须列入required,且additionalProperties: false
Strict 会在请求阶段校验 schema——不合法直接 400,而不是等到模型生成才发现。适合把 schema 错误拦在部署时。
JSON Mode vs Function Calling
| 能力 | JSON Mode | Function Calling |
|---|---|---|
| 触发方式 | response_format: json_object |
tools数组 + 工具循环 |
| 输出位置 | message.content |
tool_calls[].function.arguments |
| 能否调外部系统 | 否,只有文本 JSON | 是,你的代码执行后再回传 |
| Strict schema | 靠 prompt + 后处理 | beta Strict 原生支持 |
Thinking effort 三档
V4-Pro 和 V4-Flash 的思考模式支持low / high / max三档 effort(详见官方 API 文档Thinking Mode 章节):
- low:简单问答、格式化、短摘要
- high:日常 Agent、多步推理
- max:复杂代码生成、长链路规划
Thinking 会消耗更多 token 和延迟。若任务只是「把这段文本转成 JSON」,用非思考模式 + JSON Mode 通常更划算。
V4-Pro vs V4-Flash
| 维度 | V4-Pro | V4-Flash |
|---|---|---|
| 参数量(总 / active) | ~1.6T / ~49B | ~284B / ~13B |
| Agent / 工具调用 | GA 版显著增强,复杂链路首选 | 官方 0731 版 Agent 基准已超过 Pro Preview |
| 延迟 & 成本 | 较高 | 较低,适合高 QPS |
| Function Calling | 支持 | 支持 |
| JSON 输出 | 支持 | 支持 |
| 典型场景 | 生产 Agent、代码仓库操作、复杂数据分析 | 聊天机器人、批量结构化提取、原型验证 |
两者 API 接口完全一致,A/B 测试只需改model字段。先用 Flash 跑通工具链,再按需升级到 Pro,是常见的上线路径。
用 JSONNote 调试模型 JSON
接 V4-Pro 时,大量时间花在「模型吐出来的 JSON 能不能 parse、schema 对不对」。JSONNote 在浏览器本地处理,不上传你的 API Key 或响应体。
- 1
-
2
对照 Schema
在JSON Schema工具里粘贴你的 function parameters,再贴模型输出,检查字段是否齐全。
-
3
Diff 两次调用
调 prompt 或切换 Pro / Flash 后,用JSON Diff对比两次 structured output 的差异。
-
4
分享给同事
用URL Hash 分享把某次报错的 JSON 和工具状态写进链接,对方打开即可复现——数据不经过我们的服务器。
常见问题
DeepSeek V4-Pro 的 API 模型名是什么?
deepseek-v4-pro。base_url为https://api.deepseek.com,认证头与 OpenAI 相同(Authorization: Bearer …)。
V4-Pro 和 V4-Flash 怎么选?
复杂 Agent、长上下文推理、对工具调用准确率要求高 → Pro。高并发、成本敏感、任务相对标准 → Flash。两者都支持 Function Calling 和 JSON 输出。
Function Calling 返回 malformed JSON 怎么办?
用try/except json.JSONDecodeError包裹解析;校验必填字段;必要时重试或降级为 JSON Mode 让模型直接输出。需要严格 adherence 时用 beta Strict。
JSON Mode 还要自己写 schema 吗?
JSON Mode 只保证「输出是 JSON 对象」,不保证字段符合你的 business schema。字段约束仍靠 system prompt、后处理校验,或改用 Function Calling + Strict。
deepseek-chat 还能用吗?
不能。2026 年 7 月 24 日起 legacy 名称已停用。请迁移到deepseek-v4-pro或deepseek-v4-flash。
和 OpenAI gpt-4o 的 Function Calling 有区别吗?
请求 / 响应字段兼容,工具循环写法几乎相同。差异主要在定价、上下文长度、thinking 档位,以及 DeepSeek 的 Strict beta 路径。迁移时重点回归测试arguments解析和max_tokens预算。
总结
DeepSeek V4-Pro 本质上是:
OpenAI 兼容 API + 旗舰 MoE 模型 + 原生 Function Calling / JSON 输出 + 可选 Thinking effort。
接入时把model设为deepseek-v4-pro,工具链按 OpenAI 范式写,但永远记得:arguments是模型生成的字符串,parse 和 validate 是你的责任。调试 structured output 时,JSONNote 的格式化、Schema 和 Diff 工具可以在本地帮你快速定位问题。