Responses API

使用 Responses 格式发送文本请求,了解网关转换、事件格式与状态续接限制。

查看 Markdown

接口定位

POST /v1/responses 接收 Responses 格式,将输入转换成 Chat Completions 请求,再将助手文本转换为 Responses 输出。它适合使用 Responses 请求形状的文本客户端,但不是完整的上游原生 Responses 服务。

当前转换器只把助手文本写入响应 output。即使请求接受 tools,也不能据此认为支持完整的 function_call / function_call_output 循环。需要工具回传时使用 Chat Completions 工具调用。

端点与输入形式

项目值
端点POST https://api.gfw.net/v1/responses
OpenAI SDK base_urlhttps://api.gfw.net/v1
鉴权Authorization: Bearer $GFW_API_KEY
请求格式JSON

文本 input 可以是字符串,也可以是带 role 与 content 的消息数组。instructions 转成一条 system 消息。多轮对话应由应用把所需历史显式放入 input。

转换器还处理 input_text、input_image 内容块;视觉输入要求模型支持视觉,图片应为 Base64 Data URI。不要把未知类型的输入项当成网关一定会转发的内容。

请求参数与转换

字段类型必填当前处理方式
modelstring是GFW 模型 ID
inputstring / array常规请求是转成 user 消息或消息列表;示例始终显式提供
instructionsstring否加到消息列表开头,作为 system 文本
max_output_tokensinteger否转成 Chat Completions 的 max_tokens
max_tokensinteger否兼容字段;若与上一字段同时存在,它会覆盖转换后的值,建议只用 max_output_tokens
temperature、top_pnumber否透传,模型需支持
streamboolean否true 时输出 Responses 命名 SSE 事件
response_formatobject否透传至 Chat Completions;不等同于支持原生 text.format
reasoning、reasoning_effortobject / string否透传;具体取值与行为依赖模型及通道
tools、tool_choice、parallel_tool_callsarray / string / object / boolean否请求透传,但响应转换未实现完整工具项,不能用作完整工具循环
metadata、storeobject / boolean否透传字段,不构成平台持久化或检索响应的承诺

当前转换路径不读取 previous_response_id 来恢复会话,也不处理原生 function_call_output 项。不要仅携带前次响应 ID 省略上下文;不要假定存在响应检索、删除、后台任务或内置网页搜索端点。

完整调用示例

设置环境变量 GFW_API_KEY。Python 依赖 openai 包。以下演示无状态、非流式的文本请求。

curl --fail-with-body --silent --show-error \
  --max-time 120 \
  https://api.gfw.net/v1/responses \
  -H "Authorization: Bearer ${GFW_API_KEY:?请先设置 GFW_API_KEY}" \
  -H 'Content-Type: application/json' \
  --data '{
    "model": "deepseek-v4-pro",
    "instructions": "用中文回答,最多三句话。",
    "input": "为什么生产请求需要超时设置?",
    "max_output_tokens": 512,
    "stream": false
  }'

响应字段与事件

下面是非流式响应结构示意,不是一次真实调用的返回值:

{
  "id": "resp_chatcmpl_example",
  "object": "response",
  "created": 1800000000,
  "model": "deepseek-v4-pro",
  "status": "completed",
  "output": [
    {"type": "message", "role": "assistant", "content": [{"type": "output_text", "text": "超时让应用能够明确结束等待。"}]}
  ],
  "usage": {"input_tokens": 30, "output_tokens": 18, "total_tokens": 48}
}
字段 / 事件说明
output[].content[].text在 type=output_text 的内容块中读取文本
status非流式转换将上游 finish_reason=length 映射为 incomplete,其他普通结束映射为 completed
created当前非流式转换器输出此字段,不要强依赖其他原生 Responses 时间字段
usage.input_tokens、output_tokens输入、输出用量;明细由网关转换,不是金额
response.created、response.in_progress流式开始与进行中事件
response.output_text.delta流式文本增量,在 delta 读取
response.output_text.done、response.completed文本结束与最终响应事件

流式桥接主要提取上游 delta.content,不会完整保留推理块和工具事件。最终状态标签不是内容完整性或业务正确性的保证,应用还应检查是否有文本、连接是否完整结束。

注意事项与相关文档

图片与视频模型不能通过此端点调用。部分错误提示会提到兼容视频路径,但新接入应按 视频生成 选择正确端点,不要机械地按文本接口替换路径。

接口 usage 是返回给客户端的用量字段,平台结算可能经过计数、缓存分类与计费处理;不要直接把 usage 当作 元金额。可在 用量与调用日志 核对请求,再阅读 计费与充值。

相关文档:流式输出、结构化输出、推理模型、错误码与重试。

本页目录