Responses API

Responses API

AI TOOL PROFILE工具资料

OpenAI 官方 API 中用于创建与管理模型响应的一组接口

官网地址 https://platform.openai.com/docs/api-reference/responses

访问官网
价格官网未标价
平台API
归类API 与算力
收录2026-10-12
复核2026-10-12
编辑评分 4.3 / 5

Responses API编辑总结

EDITOR REVIEW编辑评测

Responses API 是 OpenAI 平台文档中围绕模型响应的一组 HTTP 接口,通过 POST /responses 创建响应,并提供了取消、压缩、删除、获取单条响应的配套端点。返回结果以结构化对象形式给出,包含消息、程序调用、程序输出等多种输出项类型,以及文本、日志概率和多种引用标注。它面向需要把模型能力接进自己系统的开发者,适合在服务端统一管理响应生命周期;文档未出现价格、速率限制或可用模型清单,选型时这部分需另行确认。

Responses API是什么?

Responses API 是 OpenAI 平台文档里的一个接口分组,定位是「创建和管理模型响应」。它以 HTTP 端点的方式暴露能力,核心是 POST /responses 创建一条模型响应,周边还有取消、压缩对话、删除和获取单条响应等操作。

从返回结构看,一条响应的 output 是一个输出项数组,元素可以是 Message(发给模型或来自模型的消息),也可以是 Program(程序调用)和 ProgramOutput(程序输出)等类型,官方文档列出了其中若干形态。文本输出 ResponseOutputText 支持注解数组,涵盖文件引用 FileCitation、网址引用 URLCitation、容器文件引用 ContainerFileCitation 以及文件路径 FilePath 四种标注,每条标注都带索引位置。

开发者通常把 POST /responses 作为主调用入口,用 GET /responses/{response_id} 回查历史响应,用 POST /responses/compact 压缩较长的对话上下文,用 POST /responses/{response_id}/cancel 中止仍在进行的响应,用 DELETE /responses/{response_id} 删除不再需要的记录。

Responses API核心功能

CAPABILITIES工具标签

创建模型响应

调用 POST /responses 发起一次模型响应,返回结果里带响应唯一标识,后续可用该标识查询、取消或删除这条响应。

官方说明 ↗

取消进行中的响应

通过 POST /responses/{response_id}/cancel 按响应 ID 中止尚未完成的生成,适合用户中途放弃请求或超时控制的场景。

官方说明 ↗

压缩对话

POST /responses/compact 生成压缩后的会话对象,返回类型固定为 response.compaction,输出为精简后的输出项列表,用于缩短长上下文。

官方说明 ↗

获取单条响应

GET /responses/{response_id} 按键取回一条已创建的响应,便于异步流程里回查结果或做状态轮询。

官方说明 ↗

删除响应记录

DELETE /responses/{response_id} 按标识删除一条响应;文档未说明删除后是否可恢复,也没给出保留期策略。

官方说明 ↗

多类型输出项

output 数组可容纳 Message、Program、ProgramOutput 等多种元素,文档标注为 25 种以上,便于把文本、程序调用与程序结果放在同一结构里。

官方说明 ↗

文本输出与标注

ResponseOutputText 携带 annotations、logprobs、text、type;annotations 支持文件、网址、容器文件引用和文件路径四类标注,每类都带索引位。

官方说明 ↗

提示缓存断点

ResponseInputText 支持可选的 prompt_cache_breakpoint,用 mode 标记可复用提示前缀的结束位置,且不按 token 块取整。

官方说明 ↗

Responses API值不值得用?

VERDICT工具标签

如果把大模型的调用封装进自有后端,Responses API 值得作为主入口:创建、查询、取消、删除、压缩五类操作齐全,输出结构里还带了网址引用、文件引用和 token 级 logprobs,做溯源展示或置信度过滤都有现成字段。压缩接口对多轮长对话尤其省事,不用自己写摘要逻辑。要注意的是,文档没有给出计费方式、速率限制和可用模型范围,这三项得去别处确认;删除后的数据保留策略也未说明,涉及合规留存的项目要谨慎。

建议选它的情况

  • 需要在服务端统一管理模型响应生命周期的开发者
  • 要做网址引用、文件引用展示的检索问答类产品
  • 多轮长对话需要压缩上下文以控制成本的项目
  • 需要 token 级 logprobs 做置信度判断或重排的场景

不建议选它的情况

  • 对数据删除后保留期有明确合规要求,但不愿另行确认的项目
  • 无法接受文档未给出速率限制与可用模型范围、必须先评估容量的团队
  • 只想快速试用模型、不打算写接口调用的个人用户

Responses API使用建议

HOW TO USE工具标签
入门先把路子走对
  1. 先跑通创建接口从 POST /responses 开始,拿到响应 ID 后再依次试 GET、cancel、DELETE 三个端点,确认权限与返回结构都对得上。
  2. 留意 output 是数组返回的顶层层级里有 output 数组,元素可能是 Message 也可能是 Program,取值前先判断元素类型,别默认拿 text 字段。
  3. 标注按索引渲染网址引用和文件引用都带 start_index、end_index,前端按索引在正文里插入链接,比正则替换可靠。
进阶省时间也省钱
  1. 长对话先压缩把历史轮次提交给 POST /responses/compact,返回的 compated output 再作为后续请求输入,能减少重复传输的上下文。
  2. 提示前缀设断点固定的系统提示或大段参考资料,用 prompt_cache_breakpoint 标出结束位置,配合请求里的 prompt_cache_options.ttl 控制复用。
  3. 取消请求省额度用户关页面或输入新问题时,立即调用 cancel 端点中止在途响应,避免为已经不需要的输出付费。
  4. 保存响应 ID响应 ID 是查询、取消、删除的唯一凭据,落到自己的数据库里,异步任务恢复时才有据可查。

Responses API适合谁用?

WHO IS IT FOR工具标签

后端接口开发者

推荐

要把模型能力接进自有服务,需要创建、查询、取消完整生命周期管理的,这套端点是直接可用的入口。

检索问答产品团队

推荐

输出里自带网址引用和文件引用标注,带索引位置,做答案溯源展示省去自己拼装引用字段。

多轮对话应用团队

有条件

对话轮次多、上下文费用敏感的,可用压缩端点缩短输入;但压缩后的信息损失程度文档未说明,需自行验证。

数据合规敏感项目

有条件

文档没有说明删除响应后的数据保留策略与恢复可能性,涉及留存的合规要求要先与官方确认。

零代码试用者

不推荐

全部能力都以 HTTP 端点形式提供,没有可视化操作界面的说明,不写代码无法使用。

Responses API优点和缺点

PROS & CONS工具标签

优点

  • 创建、获取、取消、删除、压缩五类操作齐备,覆盖响应完整生命周期
  • 输出项类型丰富,Message、Program、ProgramOutput 等超过 25 种可混排在 output 数组里
  • 文本输出支持文件、网址、容器文件、文件路径四类引用标注,均带索引位置
  • 提供 token 级 logprobs,可看出每个 token 的对数概率与候选分布
  • 输入文本支持显式提示缓存断点,且边界不按 token 块取整

缺点

  • 文档未给出计费方式与免费额度,成本无法从接口文档直接估算
  • 速率限制、可用模型清单均未在接口文档中说明
  • 删除响应后是否可恢复、保留多久,文档没有交代
  • 压缩接口未说明会丢失哪些细节,压缩前后效果需自行对比
  • 全部能力仅以 HTTP 端点呈现,无现成客户端界面的说明

Responses API关键指标

MEASURED FACTS工具标签
指标数值数据来源
输出项类型数量 Message、Program、ProgramOutput 等 25 种以上 Responses 参考文档 output 字段说明

Responses API常见问题

FAQ工具标签
Responses API 用什么方式创建一次响应?

向 POST /responses 发请求即可创建一条模型响应,返回结果里包含该响应的唯一标识,之后可以用这个标识去查询、取消或删除这条响应。

响应中途不想要了能停掉吗?

可以。调用 POST /responses/{response_id}/cancel,把响应 ID 填进路径即可中止还没完成的响应,适合用户关闭页面或改问新问题的情况。

一次响应的返回结构长什么样?

顶层带响应 ID 等字段,核心是 output 数组,元素可以是 Message,也可以是 Program、ProgramOutput 等类型,官方标注这类元素超过 25 种,取值前需要先判断类型。

输出里能看出答案引用了哪些网页或文件吗?

能。文本输出 ResponseOutputText 的 annotations 支持 FileCitation、URLCitation、ContainerFileCitation 和 FilePath 四类标注,每类都带索引,网址引用还给出 start_index、end_index 和标题,可按位置在正文里插入链接。

多轮对话太长有什么省事的办法?

用 POST /responses/compact 压缩对话,返回对象的类型固定是 response.compaction,输出是精简后的输出项列表。压缩会损失哪些细节没有说明,建议在正式环境前先做效果对比。

输入很长且前缀固定,有办法减少重复计算吗?

可以在 ResponseInputText 上设置可选的 prompt_cache_breakpoint,用 mode 标记可复用提示前缀的确切结束位置;断点继承请求里 prompt_cache_options.ttl 的有效期,且边界不会按 token 块取整。

怎么拿到每个 token 的概率?

文本输出的 logprobs 数组按 token 给出,每项含 token、bytes、logprob 以及 top_logprobs 候选列表,可以做置信度过滤或重排,不需要额外接口。