跳转到主要内容
/v1/responses 是 OpenAI 当前的原生主力端点。官方原话:“While Chat Completions remains supported, Responses is recommended for all new projects.” API易 完整支持该端点,base_url 换成 https://api.apiyi.com/v1 即可。 本页基于 OpenAI 官方文档整理(developers.openai.com/api/docs,2026年6月数据),示例均可直接复制运行。

为什么用 Responses

相比 Chat Completions,官方给出的三个硬数字:
  • 推理更强:同一个推理模型走 Responses 端点,SWE-bench 成绩提升约 3%(推理状态跨轮保持)
  • 缓存更省:缓存利用率比 Chat Completions 高 40%–80%(官方内部测试),输入账单直接受益
  • 工具更多web_searchcode_interpreter 等内置工具只在 Responses 提供
什么时候仍然选 Chat Completions:你在用现成框架(LangChain、各类客户端默认走 /v1/chat/completions),或需要用同一套代码调 Claude、Gemini 等非 OpenAI 模型 —— 见 兼容模式调用
被弃用的是 Assistants API(官方计划 2026年8月26日 关停),不是 Chat Completions。两个端点都会长期支持,只是新功能优先落在 Responses。

快速开始

curl https://api.apiyi.com/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-5.4",
    "input": "用一句话介绍你自己",
    "instructions": "你是一个简洁的助手"
  }'
取结果优先用 response.output_text,不要手写 output[0].content[0].text —— 推理模型的 output 数组第一项往往是 reasoning 而不是 message,手写下标会取错。

请求参数速查表

参数类型默认值说明
modelstring必填gpt-5.4gpt-5.5
inputstring / array必填用户输入,支持多模态 content 数组
instructionsstringnull系统指令(相当于 system prompt)
max_output_tokensintnull最大输出 token(含推理 token)
reasoningobjectmedium{"effort": "none/low/medium/high/xhigh"}
textobjectformat(输出格式)、verbosity(low/medium/high)
toolsarray[]函数 + 内置工具
tool_choicestring”auto”auto / required / none / 指定工具
parallel_tool_callsbooleantrue是否允许并行工具调用
storebooleantrue是否在服务端保留响应对象(30 天)
previous_response_idstringnull链式引用上一个响应,自动带上下文
conversationstringnull绑定 /v1/conversations 持久会话对象
backgroundbooleanfalse异步后台执行(长任务 / Pro 模型)
streambooleanfalse流式输出(语义化事件)
prompt_cache_keystringnull缓存路由键,提高命中率,见 缓存计费
metadataobject自定义元数据
gpt-5 系列推理模型不支持 temperature / top_p,传了会报错。控制输出风格请改用 reasoning.efforttext.verbosity

响应结构

output 是一个 item 数组,常见三种类型:reasoning(推理摘要)、message(文本回复)、function_call(函数调用请求)。精简后的响应示例:
{
  "id": "resp_abc123",
  "object": "response",
  "status": "completed",
  "model": "gpt-5.4-2026-03-05",
  "output": [
    { "type": "reasoning", "summary": [] },
    {
      "type": "message",
      "role": "assistant",
      "content": [{ "type": "output_text", "text": "你好!我是一个 AI 助手。" }]
    }
  ],
  "usage": {
    "input_tokens": 24,
    "input_tokens_details": { "cached_tokens": 0 },
    "output_tokens": 58,
    "output_tokens_details": { "reasoning_tokens": 40 },
    "total_tokens": 82
  }
}
usage 里两个值得盯的字段:
  • input_tokens_details.cached_tokens:命中缓存的输入量(按 0.1× 计费)
  • output_tokens_details.reasoning_tokens:推理消耗(按输出价计费,调低 reasoning.effort 可控)

状态管理:三种方式

1. previous_response_id 链式引用

最简单的多轮方式 —— 不用自己拼历史消息:
r1 = client.responses.create(
    model="gpt-5.4",
    input="我叫 Alice,请记住。"
)

r2 = client.responses.create(
    model="gpt-5.4",
    input="我叫什么名字?",
    previous_response_id=r1.id
)

print(r2.output_text)  # 会回答 Alice

2. conversation 持久会话

创建一个会话对象,把多次请求挂在同一个 conversation 上,不受响应对象 30 天保留期限制,适合长期存在的会话场景。

3. store 开关

store 默认为 true,响应对象在服务端保留 30 天,供 previous_response_id 引用。对数据驻留敏感的业务可以显式传 store: false,但此后该响应无法再被链式引用。
链式调用不省输入费:通过 previous_response_id 带入的全部历史上下文,仍按输入 token 全量计费。长对话省钱靠的是缓存折扣(历史前缀自动命中 0.1× 缓存价),不是链式本身 —— 详见 缓存计费

推理与输出控制

reasoning.effort 档位选型

档位适用场景
none简单问答、格式转换,要快要便宜
low常规对话、摘要
medium(默认)日常开发的均衡选择
high复杂代码、多步推理
xhigh最难的题,配合 gpt-5.5 / gpt-5.4 使用
response = client.responses.create(
    model="gpt-5.5",
    input="证明根号2是无理数",
    reasoning={"effort": "xhigh"}
)

text.verbosity 输出长度

low / medium(默认)/ high 控制回答详略,仅 Responses 端点支持:
response = client.responses.create(
    model="gpt-5.4",
    input="解释什么是闭包",
    text={"verbosity": "low"}  # 给简短版本
)

流式输出

Responses 的流式是语义化事件,不是 Chat Completions 那种 choices[0].delta 通用块。核心事件:
事件含义
response.created响应开始
response.output_item.added新增一个 output item(message / function_call 等)
response.output_text.delta文本增量
response.function_call_arguments.delta函数参数增量
response.completed全部完成(含最终 usage)
error出错
stream = client.responses.create(
    model="gpt-5.4",
    input="写一首关于秋天的短诗",
    stream=True
)

for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)
    elif event.type == "response.completed":
        print("\n\n用量:", event.response.usage)

内置工具一览

内置工具是 Responses 独有能力,在 tools 数组里声明即可,无需自己实现执行逻辑:
工具type 值说明
网页搜索web_search模型自主联网检索
文件搜索file_search检索已上传的向量库
代码解释器code_interpreter沙箱里跑 Python
计算机使用computer_use操作虚拟桌面
远程 MCPmcp连接远程 MCP 服务器
图像生成image_generation内嵌生图
工具搜索tool_search海量工具动态检索(gpt-5.4 及之后模型)
web_search 最小示例:
response = client.responses.create(
    model="gpt-5.4",
    input="今天有哪些重要的 AI 新闻?",
    tools=[{"type": "web_search"}]
)
print(response.output_text)
内置工具依赖 OpenAI 服务端执行,API易 通道对各内置工具的透传支持情况以实测为准。函数调用(自定义工具)完整支持,见 FC函数调用

Pro 模型与 background 模式

gpt-5.4-progpt-5.5-pro 是面向专业场景的深度推理模型($30 / $180 每百万 tokens,仅 svip 分组可用),实务上仅通过 /v1/responses 调用。单次请求耗时可达分钟级,建议配合 background: true 异步执行:
# 提交后台任务
response = client.responses.create(
    model="gpt-5.4-pro",
    input="对这份架构方案做深度评审:...",
    background=True
)

# 轮询取回结果
import time
while response.status in ("queued", "in_progress"):
    time.sleep(10)
    response = client.responses.retrieve(response.id)

print(response.output_text)
Pro 模型价格高、速度慢,定位是”花几分钟换一个更靠谱的答案”。日常开发请用 gpt-5.4 / gpt-5.5,没有明确的深度推理需求不建议上 Pro。

支持的模型与价格

模型输入(每 1M tokens)输出(每 1M tokens)说明
gpt-5.4$2.50$15.00当前主力,1M 上下文
gpt-5.4-mini$0.75$4.50轻量高性价比
gpt-5.5$5.00$30.00旗舰,复杂推理
gpt-5.2$1.75$14.00上代主力
gpt-5.1 / gpt-5$1.25$10.00价格友好
gpt-5.4-pro$30.00$180.00仅 svip,仅 responses,专业场景
gpt-5.5-pro$30.00$180.00仅 svip,仅 responses,专业场景
日期固定版本(如 gpt-5.4-2026-03-05)同步在售,价格与主版本一致。完整列表见 模型与价格总览

与 Chat Completions 对照

/v1/chat/completions 迁移过来的字段映射:
Chat CompletionsResponses说明
messages 数组input简单场景直接传字符串
messages[0] 的 systeminstructions独立参数
max_tokens / max_completion_tokensmax_output_tokens
response_formattext.format
顶层 reasoning_effortreasoning.effortResponses 里是嵌套对象
choices[0].message.contentoutput_text取结果
无状态,自己拼历史previous_response_id / conversation有状态
usage.prompt_tokensusage.input_tokens字段名不同
response = client.chat.completions.create(
    model="gpt-5.4",
    messages=[
        {"role": "system", "content": "你是一个简洁的助手"},
        {"role": "user", "content": "你好"}
    ]
)
content = response.choices[0].message.content

常见问题

现象原因与处理
model_not_supported 报错该模型不支持 responses 端点,换 gpt-5 系列
previous_response_id 引用失败上一个响应是 store: false,或已超 30 天保留期
output_text 为空输出全是 function_call item(模型在要求调函数),检查 output 数组逐项处理
temperature 报错gpt-5 推理模型不支持,删掉改用 reasoning.effort

相关链接