博客 AI / API

DeepSeek V4-Pro 是什么?最新模型、API、Function Calling、JSON 输出完整解析

你在接 DeepSeek API 做 Agent,文档里同时出现deepseek-v4-prodeepseek-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 的 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 等基准上报告了生产环境级别的提升。对开发者来说,变化主要体现在:

如果你已经在用 OpenAI SDK 调别的模型,切到 V4-Pro 通常只需改base_urlapi_keymodel三个字段。

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-prodeepseek-v4-flash,不要继续依赖 legacy 别名——它们在 2026 年 7 月 24 日已宣布停用。

API 接入要点

最小 Chat Completions 请求

DeepSeek API 与 OpenAI Chat Completions 格式兼容。Python 示例(需安装openai包):

Python · 最小请求
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. 1
    API 无状态

    每次请求都要带上完整messages历史。服务端不会替你记住上一轮 tool 结果。

  2. 2
    Prompt Cache

    响应usage里可能出现prompt_cache_hit_tokens。相同前缀重复调用会命中缓存,降低计费。

  3. 3
    峰值 / 低谷定价

    2026 年 8 月 16 日起实行分时段定价,低谷约为峰值一半。批处理任务可错峰调度。

Function Calling 完整流程

Function Calling 让模型在需要查数据库、调 HTTP、跑计算时,先返回结构化的工具调用,而不是直接编造答案。V4-Pro 走 OpenAI 风格的tools数组。

1. 定义 tools(JSON Schema)

JSON · tools 定义
{
  "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数组里:

JSON · 典型 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 消息

Python · 工具循环核心
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:

Python · 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 模式:

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 章节):

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. 1
    格式化 & 校验

    message.contenttool_calls[].function.arguments贴进JSON 格式化JSON 校验,立刻看到语法错误行号。

  2. 2
    对照 Schema

    JSON Schema工具里粘贴你的 function parameters,再贴模型输出,检查字段是否齐全。

  3. 3
    Diff 两次调用

    调 prompt 或切换 Pro / Flash 后,用JSON Diff对比两次 structured output 的差异。

  4. 4
    分享给同事

    URL Hash 分享把某次报错的 JSON 和工具状态写进链接,对方打开即可复现——数据不经过我们的服务器。

常见问题

DeepSeek V4-Pro 的 API 模型名是什么?

deepseek-v4-probase_urlhttps://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-prodeepseek-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 工具可以在本地帮你快速定位问题。

← 返回博客