背景

  • 此前已经介绍过了OpenAI的 Chat Completions APIAssistants API。然而从 2024 年底开始,OpenAI 推出了 Responses API,并且明确这是未来的统一入口。

  • 官方规划是:

    Responses API 将逐步取代 Assistants API,并可能在几年内覆盖 Chat Completions 的大部分场景。

  • 本文将介绍新 API 与旧 API 再功能与用法伤的区别。


功能对比

对比维度 Chat Completions API / Assistants API(旧) Responses API(新)
功能覆盖 文本/多轮对话(Chat),Assistants API 支持工具调用、文件搜索等,但 API 分散 单一接口统一支持对话、多模态、工具调用、文件处理等
多模态输入 GPT-4 Turbo 等支持图片输入,但调用方式不统一 原生支持文本 + 图片 + 文件 + 语音输入
工具调用 function_call(Chat)或 Assistants API 内置工具,扩展难度较高 tools 参数直接声明,可调用内置工具(代码执行、搜索、画图等)或 MCP 远程工具
推理控制 基本只有 temperature、top_p 等采样参数 新增 reasoning_effort(推理深度)和 verbosity(回答详略)
长任务支持 Assistants API 的 thread / run 机制,使用复杂 支持后台执行(background mode)和推理摘要(reasoning summary)
统一性 多种 API,学习成本高 一个接口全包,体验更一致
未来规划 Chat Completions 会保留但功能停滞,Assistants API 会逐渐淘汰 持续迭代,优先支持新功能

代码对比

旧 Chat Completions API

1
2
3
4
5
6
7
8
9
10
11
from openai import OpenAI
client = OpenAI()

resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "写一个Python冒泡排序"}
]
)
print(resp.choices[0].message.content)

新 Responses API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from openai import OpenAI
client = OpenAI()

resp = client.responses.create(
model="gpt-5",
input=[
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "写一个Python冒泡排序"}
],
reasoning_effort="medium", # 控制推理深度
verbosity="high", # 控制回答详略
tools=[{"type": "code_interpreter"}] # 调用内置工具
)
print(resp.output_text)

区别:

  • 参数名 messagesinput
  • 新增推理和输出控制参数
  • 内置工具调用直接在 tools 中声明
  • 所有能力集中在一个 API

五、总结

  • Responses API 是 OpenAI 的未来主力接口,统一了多轮对话、多模态、工具调用等能力。
  • 对比旧 API,它不仅减少了接口碎片化,还提供了推理深度、回答详略等更细粒度的控制。
  • 迁移建议:对于已有项目,如果只是简单文本生成,Chat Completions 仍然可用,不必急着迁移。而如果是agent项目,Assistants API 会被替代,Responses API 是长期方向。

推荐阅读