火山方舟用量与账单平台
API 接入指导 · DeepSeek V4 / V4.1 Flash

一次接入,跑通 Chat Completions 与 Responses 两套协议

覆盖鉴权、模型与价格、深度思考、流式输出、工具调用、结构化输出、多模态理解与错误排查, 字段与火山方舟官方资料对照复核,可直接作为接入实施手册使用。

Base URL
ark.cn-beijing.volces.com/api/v3
鉴权方式
Authorization: Bearer <API Key>
调用协议
Chat Completions / Responses
深度思考
thinking + reasoning 强度可调

1. 概述与 API 选型

火山方舟为 DeepSeek V4 正式版与 V4.1 Flash 提供两套调用协议,Base URL 均为 https://ark.cn-beijing.volces.com/api/v3。两套协议鉴权、核心对象与 Function Calling 结构一致, 差异集中在参数位置与状态管理方式。

对比项Chat Completions APIResponses API
接口POST /chat/completionsPOST /responses、GET /responses/{id}
协议风格兼容 OpenAI Chat Completions 经典协议火山方舟新一代协议
输入messages 消息数组,手动维护全部历史input + previous_response_id 自动继承上下文
状态无状态,历史由调用方拼接默认存储响应(store: true),服务端托管上下文
输出结构choices[].messageoutput 数组(message / reasoning / function_call 等类型化输出项)
流式格式data: [DONE] 结束的 SSE chunk类型化事件流(response.created、response.output_text.delta 等)
推理强度参数reasoning_effort(顶层)reasoning.effort(嵌套)
结构化输出参数response_formattext.format
工具定义tools[].function.{name,parameters}(嵌套)tools[].{name,parameters}(扁平)
工具结果回传追加 role: "tool" 消息function_call_output 输入项
内置工具不支持(仅自定义 function)联网搜索、知识库检索、MCP
上下文缓存前缀缓存(自动)caching 显式开关,前缀 + Session 缓存
响应查询不支持事后查询GET /responses/{id} 检索已存储响应

如何选择

  • 新项目优先评估 Responses API:输入输出格式更简洁、多轮对话无需手动拼接历史、原生支持上下文缓存与内置工具。
  • 以下情况继续使用 Chat API:已有基于 OpenAI Chat Completions 协议的存量代码;需要续写模式(Prefill); 团队已习惯 messages 无状态模式。
  • 两套 API 的鉴权与 Function Calling 基本结构一致,但模型能力与部分参数语义必须按版本区分。

2. 模型与定价

V4 正式版可直接使用 Model Name 自动路由最新正式版;V4.1 Flash 必须使用固定 Model ID,不要依赖 V4 的 Model Name 自动升级。

模型Model Name / ID输入模态上下文 / 最大输出RPM / TPM
DeepSeek V4 Flash 正式版deepseek-v4-flash
deepseek-v4-flash-ga-260731
文本1,024K / 384K tokens1,000 / 10,000,000
DeepSeek V4 Pro 正式版deepseek-v4-pro
deepseek-v4-pro-ga-260813
文本1,024K / 384K tokens1,000 / 10,000,000
DeepSeek V4.1 Flashdeepseek-v4-1-flash-260910文本、图片、视频1,024K / 384K tokens(思维链 128K)1,000 / 10,000,000

刊例价(元/百万 tokens)

模型 / 时段输入缓存命中输出缓存存储
V4 Flash GA deepseek-v4-flash-ga-2607313.000.109.000.017
V4 Pro GA deepseek-v4-pro-ga-2608139.000.3027.000.017
V4.1 Flash 高峰2.000.048.000.017
V4.1 Flash 空闲1.000.024.000.017
V4.1 Flash 批量1.000.024.00—
高峰时段为北京时间周一至周五 09:00–12:00、14:00–18:00,其余时间按空闲价计费,实际费用以请求发生时间为准。 平台侧在账单中以「高峰 / 空闲」计费单元分别结算,控制台模型广场可查看两档折后价格。

V4.1 Flash 迁移要点

维度V4 Flash / Pro GAV4.1 Flash
Model ID…-ga-260731 / …-ga-260813deepseek-v4-1-flash-260910
输入模态文本文本、图片、视频(原生多模态)
推理档位映射minimal 关闭思考;medium→low;xhigh→highnone 关闭;minimal→low;medium/xhigh→high;Chat 兼容 ultra→max
输出长度参数Chat max_tokens 默认 4K;Responses max_output_tokens 默认 32KChat 与 Responses 默认均为 128K,且都控制「回答 + 思维链」
消息角色system / user / assistant / tool额外支持 developer
前缀续写最后一条 assistant 消息即可触发需显式 prefix=true;Responses 用 partial=true
top_p通用范围 [0,1]思考模式 &lt;0.95 自动提升为 0.95;非思考模式固定 1.0
logprobs深度思考模式不支持Chat 支持,top_logprobs 范围 0–20

3. 鉴权与通用约定

使用 API Key 鉴权,两套 API 请求头一致。API Key 可在火山方舟控制台 · API Key 管理页面创建。

http
Authorization: Bearer $ARK_API_KEY
Content-Type: application/json

接口端点

用途方法与路径
创建对话补全(Chat)POST /chat/completions
创建模型响应(Responses)POST /responses
查询模型响应(Responses)GET /responses/{response_id}
Token 计数POST /tokenization
  • model 参数传 Model Name、带日期 Model ID 或 Endpoint ID(ep-xxxx)均可。
  • 长文本生成、深度推理等耗时场景,建议调大首 Token 超时(TTFT)与逐 Token 超时(TPOT),并优先使用流式输出。
  • 建议用环境变量保存 API Key,避免硬编码进代码或前端。

4. 快速开始

Chat Completions 与 Responses 两套协议的最小调用示例。

Chat Completions:发起请求

bash
curl https://ark.cn-beijing.volces.com/api/v3/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "Hello!"}
    ]
  }'

Chat Completions:响应结构

json
{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "Hello! How can I help you today?",
        "role": "assistant"
      }
    }
  ],
  "created": 1742631811,
  "id": "0217426318107460cfa43dc3f3683b1de1c09624ff49085a456ac",
  "model": "deepseek-v4-flash",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 9,
    "prompt_tokens": 19,
    "total_tokens": 28,
    "prompt_tokens_details": { "cached_tokens": 0 },
    "completion_tokens_details": { "reasoning_tokens": 0 }
  }
}

取回答内容读 choices[0].message.content;思维链内容读 choices[0].message.reasoning_content; 用量统计读 usage.completion_tokens_details.reasoning_tokens。

Responses API:发起请求

bash
curl https://ark.cn-beijing.volces.com/api/v3/responses \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-1-flash-260910",
    "input": "分析这段代码的性能瓶颈",
    "reasoning": {"effort": "high"},
    "max_output_tokens": 131072
  }'

非流式响应从 output 数组中取类型化输出项:文本为 type: "message", 思维链为 type: "reasoning",函数调用为 type: "function_call"。

Responses API:查询历史响应

bash
curl https://ark.cn-beijing.volces.com/api/v3/responses/{response_id} \
  -H "Authorization: Bearer $ARK_API_KEY"
V4.1 Flash 的示例必须使用固定 Model ID deepseek-v4-1-flash-260910; 不要把 V4 的 deepseek-v4-flash 当作 V4.1 的别名——它会路由到 V4 正式版。

5. 深度思考与推理强度

DeepSeek V4 与 V4.1 Flash 均默认开启深度思考:模型在回答前先进行分析,再输出最终回答。两者都通过 thinking.type=enabled/disabled 控制开关,不支持 auto。V4.1 所称「自适应深度思考与通用对话双模式」 属于模型架构描述,不应据此传 thinking.type=auto。

json
{
  "thinking": {"type": "enabled"},
  "reasoning_effort": "low"
}

推理强度:两套 API 参数位置不同

API参数说明
Chat Completionsreasoning_effort顶层字段,字符串枚举
Responsesreasoning.effort嵌套在 reasoning 对象内,取值集合与映射规则不同,不可与 Chat 混用
V4.1 Flash 默认值—两套 API 默认均为 high

档位映射差异

传入档位V4 GA 实际效果V4.1 Flash 实际效果
none—(不支持)关闭思考
minimal关闭思考,直接回答映射为 low
low轻量思考,侧重快速响应轻量思考
mediumChat 保留;Responses 映射为 low映射为 high
high深度分析(GA 默认值)深度分析(默认值)
xhighResponses 映射为 high映射为 high
max最高程度思考最高程度思考(Chat 兼容 ultra→max)
模型路由器必须按 Model ID 选择映射表:V4 GA 的 minimal 可关闭思考,而 V4.1 的 minimal 只是映射为 low。需要显式关闭请使用 thinking.type=disabled 或推理强度 none。

思维链内容的返回位置

API非流式流式用量统计
Chatchoices[].message.reasoning_contentchoices[].delta.reasoning_contentcompletion_tokens_details.reasoning_tokens
Responsesoutput[] 中 type: "reasoning" 输出项response.reasoning_summary_text.deltaoutput_tokens_details.reasoning_tokens

输出长度控制

API / 版本参数默认值与语义
V4 GA Chatmax_tokens默认 4096;仅限制回答长度,不含思维链
V4 GA Chatmax_completion_tokens范围 [0, 64K];限制思维链 + 回答;不可与 max_tokens 同时设置
V4 GA Responsesmax_output_tokens默认 32768;包含回答和思维链
V4.1 Flash Chatmax_tokens / max_completion_tokens默认均为 128K;均控制回答 + 思维链;超限不报错,思维链可能被截断
V4.1 Flash Responsesmax_output_tokens默认 128K;控制回答 + 思维链;超限不报错

6. 流式输出

设置 stream: true 启用流式输出,模型通过 SSE 实时推送内容片段;深度思考模型尤其推荐使用流式, 可避免长任务因超时中断。

  • 改善等待体验:无需等待完整内容生成
  • 实时过程反馈:可实时展示思维链与回答
  • 更高容错性:中途出错也能获取已生成内容
  • 简化超时管理:保持连接状态,规避复杂任务超时

请求示例

bash
curl https://ark.cn-beijing.volces.com/api/v3/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [
      {"role": "user", "content": "常见的十字花科植物有哪些?"}
    ],
    "stream": true,
    "stream_options": {"include_usage": true}
  }'

流式返回结构

text
data: {"choices":[{"delta":{"content":"","reasoning_content":"用户","role":"assistant"},"index":0}],"object":"chat.completion.chunk"}

...(思维链片段)...

data: {"choices":[{"delta":{"content":"十字","role":"assistant"},"index":0}],"object":"chat.completion.chunk"}

...(回答片段)...

data: {"choices":[{"delta":{"content":"","finish_reason":"stop","role":"assistant"},"index":0}]}

data: [DONE]
字段说明
choices[0].delta.content回答内容增量
choices[0].delta.reasoning_content思维链内容增量
choices[0].finish_reason停止原因(仅最后一个 chunk)
stream_options.include_usage设为 true 时,在 [DONE] 前返回一个含完整 usage 的 chunk

7. 工具调用(Function Calling)

两套 API 的工具调用都是两轮流程:第一轮模型返回工具调用指令 → 调用方执行工具 → 第二轮把工具结果回传 → 模型生成最终回答。

环节Chat Completions APIResponses API
工具定义{"type":"function","function":{name,description,parameters}}{"type":"function", name, description, parameters}(扁平,无 function 嵌套层)
选择策略tool_choice:none / auto(默认)/ required / 指定工具;parallel_tool_calls 默认 true由模型按 tools 自行决策
第一轮响应位置choices[].message.tool_calls[]output[] 中 type: "function_call" 项
结果回传追加 role: "tool" + tool_call_idfunction_call_output 输入项 + previous_response_id
关联 IDid ↔ tool_call_idcall_id ↔ call_id
内置工具无(仅自定义 function)Web Search / Knowledge Search / MCP

通用要求

  • parameters 必须是合规的 JSON Schema 对象;所有字段名大小写敏感。
  • 建议使用英文字段名,中文说明放在 description 中。
  • 模型生成的 arguments 是 JSON 字符串且不一定是合法 JSON,代码中执行前必须做解析校验。
执行工具前务必校验 arguments 的 JSON 合法性,并对工具入参做白名单/范围校验,避免模型幻觉参数直接打到下游系统。

8. 结构化输出

两套 API 都支持纯文本 / JSON Object / JSON Schema 三档,仅参数位置不同。

输出模式Chat Completions APIResponses API
纯文本(默认){"response_format": {"type": "text"}}{"text": {"format": {"type": "text"}}}
JSON Object{"response_format": {"type": "json_object"}}{"text": {"format": {"type": "json_object"}}}
JSON Schema内嵌 json_schema 对象(beta)schema 直接位于 text.format 内

Chat:JSON Schema 写法

json
{
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "person_info",
      "description": "提取人物信息",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "name": {"type": "string", "description": "姓名"},
          "age": {"type": "integer", "description": "年龄"}
        },
        "required": ["name", "age"]
      }
    }
  }
}

Responses:JSON Schema 写法

json
{
  "text": {
    "format": {
      "type": "json_schema",
      "name": "person_info",
      "description": "提取人物信息",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "name": {"type": "string", "description": "姓名"},
          "age": {"type": "integer", "description": "年龄"}
        },
        "required": ["name", "age"]
      }
    }
  }
}

字段含义一致:name 为自定义结构名称,schema 为 JSON Schema 定义,description 描述用途,strict=true 严格遵循 schema,false 为尽可能遵循。

9. 多模态理解

V4 Flash / Pro GA 为纯文本模型;只有 V4.1 Flash 原生支持图片与视频理解。

图片:detail 质量档位

detail处理规则
low保持长宽比缩放至 512×512
high保持长宽比,在 544×544 至 1300×1300 范围缩放
auto自动选择
xhigh保持长宽比缩放至 1300×1300
图片限制:单图 ≤50MB;请求体 ≤64MB;单请求最多 3600 张图片;经 URL 传入的图片总大小 ≤200MB。 也可用 image_pixel_limit 手动指定像素范围(3136 ≤ min_pixels ≤ max_pixels ≤ 4014080),优先级高于 detail。

Chat 图片请求示例

bash
curl https://ark.cn-beijing.volces.com/api/v3/chat/completions \
  -H "Authorization: Bearer $ARK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-1-flash-260910",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "这张图片里有什么?"},
          {
            "type": "image_url",
            "image_url": { "url": "https://example.com/image.jpg", "detail": "high" }
          }
        ]
      }
    ]
  }'

视频理解(V4.1 Flash)

  • 单个视频文件 ≤50MB,支持 Files ID。
  • 抽帧范围 16–1280 帧,min_frames 默认 16。
  • 单帧 token 可在 64–384 间调整,max_frame_tokens 默认 384,min_frame_tokens 默认 64。
  • max_video_tokens 默认 81920;每帧前会插入 [<时间戳> second],模型据此理解时序。

Responses API 的对应格式:Chat 用 image_url / video_url,Responses 用 input_image / input_video。

10. Responses API 要点

Responses API 是火山方舟新一代接口,核心差异是「类型化输出 + 服务端托管上下文」。创建响应使用 POST /responses,关键参数包括 input、instructions、previous_response_id、store、text、caching 等。

input 的四种写法

形式示例
纯文本字符串{"input": "你好"}
消息列表(简易)[{"role": "user", "content": "你好"}]
结构化输入项含 input_text / input_image 等内容块,见下方示例
工具结果回传function_call_output 项,配合 previous_response_id
json
"input": [
  {
    "type": "message",
    "role": "user",
    "content": [
      {"type": "input_text", "text": "描述这张图片"},
      {"type": "input_image", "image_url": "https://..."}
    ]
  }
]

工具结果回传格式

json
{
  "input": [
    {
      "type": "function_call_output",
      "call_id": "call_abc123",
      "output": "{\"temperature\":\"18~28℃\"}"
    }
  ]
}

多轮对话与上下文管理

默认 store: true 会存储响应,多轮对话只需传上一轮的 previous_response_id,模型自动继承上下文, 无需手动拼接历史消息。

python
# 第一轮
resp = client.responses.create(
    model="deepseek-v4-1-flash-260910",
    input="我叫小明",
)

# 第二轮:传入 previous_response_id,模型自动继承上下文
resp2 = client.responses.create(
    model="deepseek-v4-1-flash-260910",
    input="我叫什么名字?",
    previous_response_id=resp.id,
)
instructions 会作为首项插入系统/开发者消息,与 previous_response_id 一起使用时前一响应的指令不会延续; 且 instructions 不可与缓存同时使用。

11. 上下文缓存与内置工具

通过 caching 参数降低重复 prompt 的处理开销,并在 Responses API 中使用平台内置工具。

json
{
  "caching": {"type": "enabled"}
}

取值 enabled 开启缓存,disabled 关闭(默认)。缓存命中情况可通过 usage.input_tokens_details.cached_tokens 查看;caching 不可与 instructions 同时使用。

内置工具支持矩阵

工具类型type 值V4 GAV4.1 Flash
联网搜索web_search✅✅
知识库检索knowledge_search✅✅
MCPmcp✅✅
图像处理image_process❌ 模型卡未列❌ 模型卡未列(原生视觉输入 ≠ 图像处理工具)
  • 内置工具为 Responses API 特有,Chat API 仅支持自定义 function。
  • 平台存在某工具类型,不等于模型都支持,请以模型卡为准。

12. 错误码与排查

统一错误响应格式,便于在网关层做统一重试与提示。

json
{
  "error": {
    "code": "错误码",
    "message": "错误描述"
  }
}
错误码说明建议处理
server_error模型内部错误指数退避重试;持续失败请联系技术支持
InvalidParameter请求参数不合法(如 max_output_tokens 值无效)对照参数表校验取值范围与字段位置(Chat / Responses 不同)
响应未完成时查询调用 GET /responses/{id} 时目标响应仍在生成等待响应完成后再查询,或改用流式消费
401 / 鉴权失败API Key 无效、被删除或未携带 Authorization 头检查 Bearer Token 与 Key 状态
429 / 限流超出模型 RPM / TPM 限制降低并发或申请更高配额,必要时使用 TPM 保障包(service_tier)
排查顺序建议:先看 error.code 与 error.message → 确认 model 是否使用了与版本匹配的 Model ID → 再核对参数是否用错了 API(reasoning_effort vs reasoning.effort、response_format vs text.format)。

13. 代码示例

以官方 volcenginesdkarkruntime SDK 为例,两种协议共享同一客户端初始化,仅调用方法与参数结构不同。

Python · Chat Completions

python
import os
from volcenginesdkarkruntime import Ark

client = Ark(
    base_url="https://ark.cn-beijing.volces.com/api/v3",
    api_key=os.getenv("ARK_API_KEY"),
)

# 非流式调用
completion = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "你是一个有帮助的助手。"},
        {"role": "user", "content": "你好"},
    ],
    thinking={"type": "enabled"},  # 开启深度思考(默认开启)
)
print(completion.choices[0].message.content)
# 思维链内容:completion.choices[0].message.reasoning_content

Python · Responses

python
import os
from volcenginesdkarkruntime import Ark

client = Ark(
    base_url="https://ark.cn-beijing.volces.com/api/v3",
    api_key=os.getenv("ARK_API_KEY"),
)

# 非流式调用
response = client.responses.create(
    model="deepseek-v4-flash",
    input="你好",
    thinking={"type": "enabled"},
)
print(response.output[0].content[0].text)

其它语言

  • Node.js / Java / Go 等语言的完整示例可在控制台「使用指导」与火山方舟官方文档中获取,参数结构与上述一致。
  • 若使用 OpenAI 兼容 SDK,把 Base URL 指向 https://ark.cn-beijing.volces.com/api/v3 即可; Responses 协议需使用官方 volcenginesdkarkruntime SDK。