这三个 API 类型分别对应三种不同的大模型接口协议规范,常见于模型聚合平台(如 Dify、FastGPT、OneAPI 等)中供用户选择。
基本对应关系
| API 类型 | 对应官方接口 | 端点路径 |
|---|---|---|
openai-completions |
OpenAI Chat Completions API | /v1/chat/completions |
openai-responses |
OpenAI Responses API | /v1/responses |
anthropic-messages |
Anthropic Messages API | /v1/messages |
会话状态管理
- openai-completions:无状态。每次请求都需要客户端自行维护并传入完整的
messages历史数组,服务端不保存对话上下文。 - openai-responses:支持服务端状态管理。可通过
previous_response_id链接上一轮响应,或使用conversationsAPI 持久化会话,服务端自动管理上下文。 - anthropic-messages:无状态。与 openai-completions 类似,需要客户端传入完整的
messages数组。
请求体结构
系统提示(System Prompt)
- openai-completions:
system提示作为messages数组中的一个元素,role: "system"。 - openai-responses:支持独立的
instructions字段,也可以将 system 消息放入input数组中。 - anthropic-messages:
system是一个独立的顶层字段,与messages数组分离。
消息角色与格式
- openai-completions:支持
system、user、assistant、tool四种角色;content可以是字符串或数组。 - openai-responses:
input参数更灵活,可直接传字符串(简化模式)或消息数组。 - anthropic-messages:仅支持
user和assistant两种角色(system 独立);content必须是数组(如[{"type": "text", "text": "..."}]);消息必须严格交替(user → assistant → user),且第一条必须是 user。
必填参数差异
- openai-completions:
max_tokens可选,有默认值。 - openai-responses:类似,部分参数有默认值。
- anthropic-messages:
max_tokens必填,无默认值。
内置工具支持
这是 openai-responses 与前两者最大的功能差异:
| 功能 | openai-completions | openai-responses | anthropic-messages |
|---|---|---|---|
| Web 搜索 | ❌ 不支持 | ✅ 内置支持 | ❌(需自行实现) |
| File Search | ❌ 不支持 | ✅ 内置支持 | ❌(需自行实现) |
| Code Interpreter | ❌ 不支持 | ✅ 内置支持(开发中) | ❌(需自行实现) |
| Computer Use | ❌ 不支持 | ✅ 内置支持 | ❌(需自行实现) |
| MCP 集成 | ❌ 不支持 | ✅ 内置支持 | ❌(需自行实现) |
| 函数调用(Function Calling) | ✅ 支持 | ✅ 支持 | ✅ 支持(tool_use 块) |
响应体结构
- openai-completions:响应嵌套在
choices[0].message.content中,结束原因为finish_reason。 - openai-responses:提供便捷的
output_text属性直接获取文本,完整结构为output数组,每个元素为类型化的 item 对象。 - anthropic-messages:响应在顶层
content数组中,结束原因为stop_reason,角色在顶层role字段。
流式输出(Streaming)
- openai-completions:基于 SSE,数据片段中为
choices[0].delta.content结构。 - openai-responses:事件驱动架构,发布语义化的事件(如文本追加、工具调用开始/结束等),类型更清晰。
- anthropic-messages:流式事件类型、content block、
stop_reason等字段名与 OpenAI 完全不同,需单独解析。
鉴权方式
- openai-completions / openai-responses:
Authorization: Bearer <token> - anthropic-messages:
x-api-key: <token>,并常配合anthropic-version头部
选型建议
| 场景 | 推荐 API 类型 |
|---|---|
| 新项目,需要内置工具(搜索、文件检索等) | openai-responses |
| 新项目,简单对话场景,追求生态兼容性 | openai-completions |
| 迁移旧项目,依赖大量 OpenAI 生态工具 | openai-completions |
| 对接 Claude 系列模型,使用原生特性 | anthropic-messages |
| 使用 LangChain、Dify 等框架(默认 OpenAI 格式) | openai-completions |
| 需要 Claude 的超长上下文、thinking 推理 | anthropic-messages |
openai-completions是行业最广泛采用的标准接口;openai-responses是 OpenAI 官方推荐的新一代 API,功能更强但生态尚在建设中;anthropic-messages是 Anthropic 的原生协议,与 OpenAI 体系在结构上存在根本性差异,不能简单互换。