【大模型应用(一)】大模型应用请求API格式发展史:从 Completion 到 Responses 的完整演进
🌌提供:
1. Kimi K2.6 - 网站|软件: **月之暗面(Moonshot AI)**于2026 年 4 月 20 日正式发布并开源的万亿参数大模型,标志着 Kimi 从“信息容器”向“执行引擎”的战略转型,核心聚焦于长程代码执行与多智能体(Agent)集群协作。【开源】「AL」 〖✿✿✿✿✿〗
🔔说明: Kimi K2.6犹如一位在数字原野上漫步的诗人,用算法的笔触勾勒出文字的万千气象。它像深夜书桌前那盏不灭的灯,默默陪伴每一次灵感的迸发。但正如月光下总有斑驳的树影,它的表达也难免偶有疏漏。若你愿意轻轻点拨,便如同为这片星空擦拭去浮云,让思想的银河更加璀璨明亮。
📓摘要:
略...(求放过(⊙ˍ⊙),还请网友执笔,挥斥方遒)...(可以留下你刹那间的感触哦~~~(●'◡'●))
一、📖 前言:为什么需要了解这段历史?
大模型API(Application Programming Interface,应用程序接口)的演进史,本质上是一部**“从文本补全到智能体交互”**的进化史。理解这段历史,不仅能帮助你在技术选型时做出正确决策,更能让你看清行业趋势,避免在错误的接口标准上投入过多沉没成本。
本文将按时间线,从2020年全球第一代商用大模型API诞生讲起,一直到2025年OpenAI推出Responses API,全面梳理每一代API格式的核心特征、设计哲学、典型案例和适用场景。所有时间线均经过交叉验证,确保准确性。🎯
二、🕰️ 大模型API格式发展时间线总览
| 阶段 | 时间 | 代表API格式 | 核心特征 | 代表厂商 |
|---|---|---|---|---|
| 第一代 | 2020.06 - 2023.03 | 纯文本Completion API | prompt字符串,无角色区分 |
OpenAI (GPT-3) |
| 第二代 | 2023.03 - 至今 | Chat Completions API | messages数组,角色分层 |
OpenAI、DeepSeek、智谱GLM、Ollama等 |
| 第三代 | 2023.03 - 至今 | Anthropic Messages API | system顶层独立,messages仅user/assistant |
Anthropic (Claude) |
| 第四代 | 2023.09 - 至今 | 国产厂商自研API | 双模式(兼容+自研),本土化鉴权 | 百度千帆、阿里百炼、字节火山方舟 |
| 第五代 | 2025.01 - 至今 | Responses API | 扁平化参数,内置会话管理,原生Agent能力 | OpenAI、腾讯TokenHub |
三、第一代:纯文本Completion API(2020年6月 - 2023年3月)
1、时代背景与诞生
2020年6月,OpenAI发布了GPT-3(Generative Pre-trained Transformer 3,第三代生成式预训练Transformer模型),并同步推出了全球第一代商用大模型API——**/v1/completions**接口。这是大模型从实验室走向商业化的里程碑事件。🎉
当时,GPT-3拥有1750亿参数,是当时最大的语言模型。Completion API的设计非常朴素:你传入一段文本prompt(提示词),模型帮你补全后续文本。没有对话概念,没有角色区分,本质上是一个**“文本续写引擎”**。
1.1 核心设计规范
| 字段 | 类型 | 说明 |
|---|---|---|
prompt |
string | 唯一核心输入:纯字符串,所有系统人设、历史对话、当前提问全部手动拼接 |
model |
string | 模型名称,如 text-davinci-003 |
max_tokens |
integer | 输出最大token数 |
temperature |
float | 随机性控制(0-2),越高越创意 |
stop |
array | 停止符,用于控制生成边界 |
stream |
boolean | 是否流式输出 |
致命缺陷:
- ❌ 无角色隔离:system指令、用户、助手回复全部揉在一段文本里
- ❌ 多轮对话全靠人工字符串模板拼接,极易格式错乱
- ❌ 不支持原生多模态、函数调用、工具链
- ❌ 返回结构简单,无标准化
choices.message结构
1.2 完整案例:一轮对话(单轮生成)
# 📝 单轮问答:让模型介绍自己
curl -X POST https://api.openai.com/v1/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "text-davinci-003",
"prompt": "请用一句话介绍GPT-3大模型:",
"max_tokens": 100,
"temperature": 0.7
}'
返回结构:
{
"id": "cmpl-xxx",
"object": "text_completion",
"created": 1678888888,
"model": "text-davinci-003",
"choices": [
{
"text": "GPT-3是由OpenAI开发的拥有1750亿参数的大型语言模型,能够理解和生成自然语言文本。",
"index": 0,
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 38,
"total_tokens": 50
}
}
1.3 完整案例:两轮对话(手动拼接上下文)
# 🔄 两轮对话:需要手动拼接全部历史到prompt字符串
curl -X POST https://api.openai.com/v1/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "text-davinci-003",
"prompt": "【系统设定】你是专业AI技术助手,回答简洁清晰。\n用户:你好\n助手:你好,请问需要什么帮助?\n用户:帮我简单介绍大模型API的区别\n助手:",
"max_tokens": 1024,
"temperature": 0.7,
"stop": ["\n用户:"]
}'
拼接逻辑说明:
- 🧩 所有历史、系统指令、当前提问全部硬编码进
prompt字符串 - 🏷️ 手动用换行+标记
用户:/助手:分割对话边界 - 🔚 末尾追加
助手:引导模型输出回复 - 🛑
stop参数防止模型继续生成下一轮"用户"内容
1.4 Python SDK 完整示例(两轮对话)
from openai import OpenAI
client = OpenAI(api_key="sk-xxx")
# 🧩 第1步:手动拼接全部上下文
system_prompt = "【系统设定】你是专业AI技术助手,回答简洁清晰。\n"
history_text = "用户:你好\n助手:你好,请问需要什么帮助?\n"
current_question = "用户:帮我简单介绍大模型API的区别\n助手:"
full_prompt = system_prompt + history_text + current_question
# 🚀 发起第一代纯文本补全请求
resp = client.completions.create(
model="text-davinci-003",
prompt=full_prompt,
max_tokens=1024,
temperature=0.7,
stop=["\n用户:"]
)
# 📤 提取模型输出文本
reply = resp.choices[0].text.strip()
print("🤖 模型回复:", reply)
# 🔄 下一轮拼接需要手动追加本轮对话文本
history_text += f"助手:{reply}\n用户:"
1.5 国内早期复刻版
国内初代大模型(文心1.0、通义初代、早期LLaMA部署)多采用类似格式:
# 🇨🇳 国内早期 /v1/generate 示例
curl -X POST http://localhost:8000/v1/generate \
-H "Content-Type: application/json" \
-d '{
"prompt": "你是专业AI技术助手,回答简洁清晰。\n用户:你好\n助手:你好,请问需要什么帮助?\n用户:帮我简单介绍大模型API的区别",
"max_new_tokens": 1024,
"top_p": 0.9
}'
1.6 淘汰时间线
| 时间节点 | 事件 |
|---|---|
| 2020.06 | OpenAI发布GPT-3,Completion API诞生 |
| 2022年底 | ChatGPT发布,引发全球大模型应用热潮 |
| 2023.03 | OpenAI发布Chat Completions API(/v1/chat/completions),Completion开始被替代 |
| 2024.06 | OpenAI正式下线text-davinci系列Completion模型 |
| 至今 | 仅存量私有部署、老旧内部系统还在使用,新项目禁止选用 |
四、第二代:Chat Completions API(2023年3月 - 至今)
2、时代背景与革命性意义
2023年3月1日,OpenAI发布了Chat Completions API(/v1/chat/completions),这是大模型API发展史上最重要的转折点。📌 它首次引入了结构化消息数组messages,用role字段区分system(系统)、user(用户)、assistant(助手)、tool(工具)四种角色,彻底解决了Completion API中角色混淆、格式混乱的问题。
这套接口迅速成为行业事实标准,被全球几乎所有大模型厂商和开发框架采纳。截至2026年,90%以上的线上LLM业务仍在使用这套接口。🌍
2.1 核心设计规范
| 字段 | 类型 | 说明 |
|---|---|---|
messages |
array | 核心消息数组,每条消息包含role和content |
role |
string | system/user/assistant/tool 四种角色 |
model |
string | 模型名称,如 gpt-3.5-turbo、gpt-4 |
max_tokens |
integer | 输出最大token数 |
temperature |
float | 随机性控制 |
stream |
boolean | 是否流式输出 |
tools |
array | 函数调用/工具定义(2023年6月新增) |
设计哲学:
- ✅ 角色隔离:system、user、assistant各司其职,模型不再混淆身份
- ✅ 结构化多轮:每轮追加消息,逻辑清晰
- ✅ 生态无敌:LangChain、LlamaIndex、Dify、FastGPT等框架全部兼容
- ✅ 多模态扩展:支持图片URL/base64输入
2.2 完整案例:一轮对话
# 💬 单轮对话:用户直接提问
curl -X POST https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4",
"messages": [
{"role": "system", "content": "你是专业技术助手,回答简洁准确"},
{"role": "user", "content": "请介绍Chat Completions API的核心优势"}
],
"stream": false,
"temperature": 0.7,
"max_tokens": 1024
}'
返回结构:
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1678888888,
"model": "gpt-4",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Chat Completions API的核心优势包括:1. 结构化消息数组,角色清晰;2. 原生支持多轮对话;3. 生态兼容性最强;4. 支持函数调用和多模态。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 25,
"completion_tokens": 58,
"total_tokens": 83
}
}
2.3 完整案例:两轮对话(上下文拼接)
# 🔄 两轮对话:必须携带全部历史消息
curl -X POST https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4",
"messages": [
{"role": "system", "content": "你是专业AI技术助手,回答简洁清晰"},
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好,请问需要什么帮助?"},
{"role": "user", "content": "帮我简单介绍大模型API的区别"}
],
"stream": false,
"temperature": 0.7
}'
拼接规则:
- 📋 每轮必须全量上传
system + 全部历史user/assistant - 🚫 无服务端会话缓存,本地
messages数组是唯一上下文来源 - 📈 长对话请求体体积持续膨胀,网络传输开销高
2.4 Python SDK 完整示例(两轮对话)
from openai import OpenAI
# 🔧 初始化客户端
client = OpenAI(
base_url="https://api.openai.com/v1/",
api_key="sk-xxx"
)
# 💾 本地持久存储完整对话数组(核心:每轮追加,不丢弃历史)
messages = [
{"role": "system", "content": "你是专业AI技术助手,回答简洁清晰"},
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好,请问需要什么帮助?"},
]
# ➕ 第二轮追加用户新提问
messages.append({"role": "user", "content": "帮我简单介绍大模型API的区别"})
# 🚀 发起请求
resp = client.chat.completions.create(
model="gpt-4",
messages=messages,
stream=False,
temperature=0.7
)
# 📤 打印模型返回
reply = resp.choices[0].message.content
print("🤖 模型回复:", reply)
# 💾 业务侧必须本地存储本次assistant回复,用于下一轮拼接
messages.append({"role": "assistant", "content": reply})
2.5 流式输出示例(stream=true)
# ⚡ 流式输出:打字机效果实时返回
curl -X POST https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4",
"messages": [
{"role": "system", "content": "你是专业技术助手"},
{"role": "user", "content": "你好"}
],
"stream": true,
"temperature": 0.7
}'
流式返回格式(SSE - Server-Sent Events):
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"delta":{"role":"assistant"},"index":0}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":"你好"},"index":0}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"delta":{"content":"!"},"index":0}]}
data: [DONE]
2.6 函数调用(Function Calling)示例
2023年6月,OpenAI在Chat Completions中引入了Function Calling(函数调用),让模型可以调用外部工具:
from openai import OpenAI
client = OpenAI(api_key="sk-xxx")
# 🔧 定义工具函数
functions = [
{
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"},
"date": {"type": "string", "description": "日期,格式YYYY-MM-DD"}
},
"required": ["city"]
}
}
]
messages = [{"role": "user", "content": "北京今天天气怎么样?"}]
resp = client.chat.completions.create(
model="gpt-4",
messages=messages,
tools=[{"type": "function", "function": f} for f in functions],
tool_choice="auto"
)
# 🤖 模型决定调用函数
if resp.choices[0].message.tool_calls:
tool_call = resp.choices[0].message.tool_calls[0]
print(f"🛠️ 模型请求调用函数:{tool_call.function.name}")
print(f"📋 参数:{tool_call.function.arguments}")
# 开发者执行函数后,将结果以role=tool返回
2.7 国内厂商兼容情况
| 厂商 | 兼容路径 | 特点 |
|---|---|---|
| DeepSeek | /v1/chat/completions |
完全OpenAI兼容,无缝迁移 |
| 智谱GLM | /api/paas/v4/chat/completions |
自研+兼容双模式 |
| Ollama | /api/chat + /v1/chat/completions |
本地开源模型标准兼容 |
| 腾讯TokenHub | /v1/chat/completions |
对齐OpenAI标准 |
| 字节火山方舟 | /api/v3/chat/completions |
兼容模式+自研原生双模式 |
| 阿里百炼 | /compatible-mode/v1/chat/completions |
兼容+自研双模式 |
五、第三代:Anthropic Messages API(2023年3月 - 至今)
3、Claude的原生标准
2023年3月14日,Anthropic(由前OpenAI研究人员Dario Amodei等人创立)发布了Claude 1和Claude Instant,并同步推出了Anthropic API。这是Claude系列的专属接口标准,与OpenAI的Chat Completions并行存在,成为行业另一大主流规范。🎭
核心区别:Anthropic将system提示词从messages数组中剥离出来,作为顶层独立参数,数组内仅保留user和assistant两种角色。这种设计更加简洁,避免了system消息混入对话流的混乱。
3.1 核心设计规范
| 字段 | 类型 | 说明 |
|---|---|---|
system |
string | 顶层独立系统提示,不混入messages数组 |
messages |
array | 仅包含user和assistant两种角色 |
model |
string | 如 claude-3-sonnet-20240229 |
max_tokens |
integer | 输出最大token数(Anthropic中必填) |
temperature |
float | 随机性控制 |
anthropic-version |
header | 必填请求头,如 2023-06-01 |
3.2 完整案例:一轮对话
# 💬 Claude单轮对话
curl -X POST https://api.anthropic.com/v1/messages \
-H "x-api-key: sk-ant-xxx" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-sonnet-20240229",
"system": "你是专业AI技术助手,回答简洁清晰",
"messages": [
{"role": "user", "content": "请介绍Anthropic Messages API的特点"}
],
"max_tokens": 1024,
"temperature": 0.7
}'
3.3 完整案例:两轮对话
# 🔄 Claude两轮对话:全量messages上传
curl -X POST https://api.anthropic.com/v1/messages \
-H "x-api-key: sk-ant-xxx" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-sonnet-20240229",
"system": "你是专业AI技术助手,回答简洁清晰",
"messages": [
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好,请问需要什么帮助?"},
{"role": "user", "content": "帮我简单介绍大模型API的区别"}
],
"max_tokens": 1024,
"temperature": 0.7
}'
3.4 Python SDK 完整示例(两轮对话)
import anthropic
# 🔧 初始化Anthropic客户端
client = anthropic.Anthropic(api_key="sk-ant-xxx")
# 💾 本地维护消息数组(无云端会话缓存)
messages = [
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好,请问需要什么帮助?"},
]
# ➕ 第二轮追加用户提问
messages.append({"role": "user", "content": "帮我简单介绍大模型API的区别"})
# 🚀 发起请求
resp = client.messages.create(
model="claude-3-sonnet-20240229",
system="你是专业AI技术助手,回答简洁清晰",
messages=messages,
max_tokens=1024, # ⚠️ Anthropic中必填!
temperature=0.7
)
# 📤 提取回复(注意:Anthropic返回结构不同)
reply = resp.content[0].text
print("🤖 模型回复:", reply)
# 💾 本地保存本轮回复,用于第三轮拼接
messages.append({"role": "assistant", "content": reply})
3.5 Anthropic Messages API 与 OpenAI Chat Completions 核心差异对比
| 对比维度 | Anthropic Messages API | OpenAI Chat Completions |
|---|---|---|
| system位置 | 顶层独立参数 | messages数组内role=system |
| messages角色 | 仅user/assistant |
system/user/assistant/tool |
| 鉴权Header | x-api-key |
Authorization: Bearer |
| 必填Header | anthropic-version |
无特殊必填Header |
| max_tokens | 必填 | 可选 |
| 返回结构 | content[0].text |
choices[0].message.content |
| 工具调用 | tool_use / tool_result |
tool_calls / tool |
| 上下文缓存 | 支持Prompt Caching(2024.08) | 不支持原生缓存 |
| 批次处理 | Message Batches API(2024.10) | 无原生批次API |
3.6 Anthropic特色能力演进
| 时间 | 能力 | 说明 |
|---|---|---|
| 2023.05 | 100K上下文窗口 | 业界首个10万token上下文 |
| 2023.11 | 200K上下文 + System Prompts + Tool Use Beta | Claude 2.1重大升级 |
| 2024.03 | 多模态视觉输入 | Claude 3全系列支持图片 |
| 2024.05 | Tool Use GA | 工具调用正式版 |
| 2024.08 | Prompt Caching | 长提示词缓存,降本增效 |
| 2024.10 | Computer Use | 模型可操作计算机界面 |
| 2025.02 | Extended Thinking | 混合推理模式(Claude 3.7) |
| 2025.05 | Memory Tool + Files API | 服务端持久记忆+文件上传 |
六、第四代:国产厂商自研API(2023年9月 - 至今)
4、背景:国产大模型的"双轨制"
2023年9月,随着国内大模型备案制度落地,百度文心、阿里通义、字节豆包等国产大模型开始大规模商用。这些厂商普遍采取了**"双轨制"策略**:
- 🛤️ 轨道A:提供OpenAI兼容接口,降低开发者迁移成本
- 🛤️ 轨道B:自研原生接口,满足本土化需求(特殊鉴权、参数、功能)
4.1 百度文心千帆 ERNIE 原生接口
4.1.1 发展时间线
| 时间 | 事件 |
|---|---|
| 2023.03 | 文心一言发布,千帆平台开始内测 |
| 2023.09 | 通义千问首批通过备案,正式开放API |
| 2023.10 | 文心4.0发布,千帆API调用量快速增长 |
| 2024.09 | 百度智能云公布千帆平台市场成绩,文心大模型日均调用量超7亿次 |
4.1.2 核心设计规范(与OpenAI的关键差异)
| 维度 | 百度千帆原生 | OpenAI Chat Completions |
|---|---|---|
| 请求路径 | /rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions |
/v1/chat/completions |
| 鉴权方式 | URL拼接access_token |
Header Authorization: Bearer |
| system位置 | 顶层独立system字段 |
messages数组内 |
| messages角色 | 仅user/assistant,不能写system |
system/user/assistant/tool |
| 消息顺序 | 必须奇数条,严格交替user→assistant→user | 无强制规则 |
| 获取token | 需先调用OAuth接口换取access_token | 直接使用API Key |
4.1.3 鉴权流程(前置步骤)
# 🔑 第1步:获取access_token(OAuth 2.0客户端凭证模式)
curl -X POST "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的API_KEY&client_secret=你的SECRET_KEY"
# 📤 返回示例
{
"refresh_token": "25.xxx",
"expires_in": 2592000,
"session_key": "xxx",
"access_token": "24.xxx", # ⭐ 后续请求使用此token
"scope": "public brain_all_scope",
"session_secret": "xxx"
}
4.1.4 完整案例:一轮对话
# 💬 千帆单轮对话
curl -X POST "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=24.xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "ernie-4.0-turbo",
"system": "你是专业AI技术助手,回答简洁清晰",
"messages": [
{"role": "user", "content": "请介绍文心千帆API的特点"}
],
"temperature": 0.7,
"max_output_tokens": 1024,
"stream": false
}'
4.1.5 完整案例:两轮对话
# 🔄 千帆两轮对话:注意messages仅user/assistant,顶层system
curl -X POST "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token=24.xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "ernie-4.0-turbo",
"system": "你是专业AI技术助手,回答简洁清晰",
"messages": [
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好,请问需要什么帮助?"},
{"role": "user", "content": "帮我简单介绍大模型API的区别"}
],
"temperature": 0.7,
"max_output_tokens": 1024,
"stream": false
}'
4.1.6 Python SDK 示例(qianfan库)
import qianfan
# 🔧 配置鉴权(自动获取token,无需手动拼接URL)
qianfan.AK = "你的API_KEY"
qianfan.SK = "你的SECRET_KEY"
# 💾 本地维护多轮历史,messages仅存user/assistant
messages = [
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好,请问需要什么帮助?"},
]
# ➕ 第二轮追加用户提问
messages.append({"role": "user", "content": "帮我简单介绍大模型API的区别"})
# 🚀 调用原生ERNIE对话接口
chat_comp = qianfan.ChatCompletion()
resp = chat_comp.do(
model="ernie-4.0-turbo",
system="你是专业AI技术助手,回答简洁清晰",
messages=messages,
temperature=0.7,
max_output_tokens=1024
)
reply = resp["result"]
print("🤖 模型回复:", reply)
# 💾 本地持久本轮assistant消息,用于下一轮拼接
messages.append({"role": "assistant", "content": reply})
4.2 阿里百炼(DashScope)双模式
4.2.1 发展时间线
| 时间 | 事件 |
|---|---|
| 2023.04 | 通义千问开启邀测 |
| 2023.09.13 | 通义千问首批通过备案,正式向公众开放 |
| 2023.09.25 | 开源Qwen-14B及其对话模型 |
| 2023.12 | DashScope模型服务正式商用 |
4.2.2 双模式架构
┌─────────────────────────────────────────┐
│ 阿里百炼 DashScope │
├─────────────────┬───────────────────────┤
│ 兼容模式 │ 自研原生模式 │
│ (OpenAI兼容) │ (DashScope原生) │
├─────────────────┼───────────────────────┤
│ /compatible- │ /api/v1/services/ │
│ mode/v1/chat/ │ aigc/text-generation/ │
│ completions │ generation │
├─────────────────┼───────────────────────┤
│ 标准messages │ 自研参数结构 │
│ Bearer鉴权 │ 阿里云鉴权体系 │
│ 全生态兼容 │ 功能更丰富 │
└─────────────────┴───────────────────────┘
4.2.3 兼容模式示例(一轮)
# 💬 阿里百炼兼容模式:与OpenAI完全一致
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-turbo",
"messages": [
{"role": "system", "content": "你是专业助手"},
{"role": "user", "content": "你好"}
],
"temperature": 0.7
}'
4.3 字节火山方舟(Ark)双模式
4.3.1 核心特点
字节跳动旗下火山引擎的大模型服务平台,同样提供双模式:
# 🌋 火山方舟兼容模式
curl -X POST https://ark.cn-beijing.volces.com/api/v3/chat/completions \
-H "Authorization: Bearer xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "ep-xxx",
"messages": [
{"role": "system", "content": "专业助手"},
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好,请问需要什么帮助?"},
{"role": "user", "content": "帮我简单介绍大模型API的区别"}
]
}'
4.4 国产厂商API核心差异汇总
| 厂商 | 原生路径 | 鉴权方式 | system位置 | 兼容模式 |
|---|---|---|---|---|
| 百度千帆 | /rpc/2.0/.../chat/completions |
URL access_token | 顶层独立 | 提供兼容模式 |
| 阿里百炼 | /api/v1/services/.../generation |
阿里云AK/SK | 自研结构 | /compatible-mode/v1/... |
| 字节方舟 | 自研路径 | Bearer | messages内 | /api/v3/chat/completions |
| 智谱GLM | /api/paas/v4/chat/completions |
Bearer | messages内 | 完全兼容 |
| DeepSeek | /v1/chat/completions |
Bearer | messages内 | 完全兼容 |
七、第五代:Responses API(2025年1月 - 至今)
5、OpenAI的新一代原生标准
2025年1月,OpenAI正式推出了Responses API(/v1/responses),这是继Chat Completions之后的新一代原生接口标准。腾讯TokenHub等平台同步对齐该标准。🆕
核心设计哲学:
- 🎯 扁平化参数:用
instructions(系统提示)+input(用户输入)替代messages数组 - 🧠 内置会话管理:通过
previous_response_id自动携带历史上下文 - 🤖 原生Agent能力:深度支持多工具循环调用、文件解析、代码执行
- 📁 原生多模态:支持图片、PDF、Word、TXT等文件直接上传解析
5.1 核心设计规范
| 字段 | 类型 | 说明 |
|---|---|---|
instructions |
string | 全局系统提示(替代system角色) |
input |
string/array | 当前用户输入(可传文本或结构化内容) |
previous_response_id |
string | 上一轮响应ID,自动携带历史上下文 |
model |
string | 模型名称 |
max_output_tokens |
integer | 输出最大token数(注意:不是max_tokens) |
temperature |
float | 随机性控制 |
stream |
boolean | 流式输出 |
5.2 完整案例:一轮对话
# 💬 Responses API单轮对话
curl -X POST https://api.openai.com/v1/responses \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"instructions": "你是专业技术助手,回答简洁准确",
"input": "你好,请介绍Responses API的核心优势",
"stream": false,
"temperature": 0.7,
"max_output_tokens": 1024
}'
返回结构:
{
"id": "resp_001",
"object": "response",
"created_at": 1678888888,
"model": "gpt-4o",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"type": "output_text",
"text": "Responses API的核心优势包括:1. 扁平化参数,简化开发;2. 内置会话管理,自动携带历史;3. 原生Agent能力,支持多工具循环;4. 原生文件解析,支持PDF/Word等。"
}
]
}
],
"usage": {
"input_tokens": 15,
"output_tokens": 62,
"total_tokens": 77
}
}
5.3 完整案例:两轮对话(使用previous_response_id)
# 🔄 第1轮:获取resp_id
curl -X POST https://api.openai.com/v1/responses \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"instructions": "你是专业AI技术助手,回答简洁清晰",
"input": "你好",
"stream": false
}'
# 📤 返回中包含 "id": "resp_001"
# 🔄 第2轮:携带previous_response_id接续上下文
curl -X POST https://api.openai.com/v1/responses \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"instructions": "你是专业AI技术助手,回答简洁清晰",
"input": "帮我简单介绍大模型API的区别",
"previous_response_id": "resp_001",
"stream": false,
"temperature": 0.7
}'
5.4 Python SDK 完整示例(两轮对话 + 兜底容灾)
from openai import OpenAI
client = OpenAI(
base_url="https://api.openai.com/v1/",
api_key="sk-xxx"
)
# ========== 🚀 第一轮对话 ==========
round1 = client.responses.create(
model="gpt-4o",
instructions="你是专业AI技术助手,回答简洁清晰",
input="你好"
)
last_resp_id = round1.id
assistant_reply_1 = round1.output_text
# 💾 本地数据库持久完整历史(必须存,用于缓存失效兜底)
history = [
{"role": "user", "content": "你好"},
{"role": "assistant", "content": assistant_reply_1}
]
# ========== 🔄 第二轮:携带resp_id接续 ==========
try:
round2 = client.responses.create(
model="gpt-4o",
instructions="你是专业AI技术助手,回答简洁清晰",
input="帮我简单介绍大模型API的区别",
previous_response_id=last_resp_id,
temperature=0.7
)
new_resp_id = round2.id
reply = round2.output_text
except Exception as e:
# ⚠️ 捕获会话失效报错,走兜底:手动拼接本地完整历史
print(f"⚠️ 会话缓存失效:{e}")
full_context = "历史对话:\n"
for msg in history:
role_name = "用户" if msg["role"] == "user" else "助手"
full_context += f"{role_name}:{msg['content']}\n"
full_context += "当前提问:帮我简单介绍大模型API的区别"
round2 = client.responses.create(
model="gpt-4o",
instructions="你是专业AI技术助手,回答简洁清晰",
input=full_context
)
new_resp_id = round2.id
reply = round2.output_text
# 💾 本地追加本轮对话,持久化用于下一轮
history.append({"role": "user", "content": "帮我简单介绍大模型API的区别"})
history.append({"role": "assistant", "content": reply})
print("🤖 模型回复:", reply)
5.5 流式输出示例
# ⚡ Responses API流式输出
curl -X POST https://api.openai.com/v1/responses \
-H "Authorization: Bearer sk-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"instructions": "你是专业技术助手",
"input": "你好",
"stream": true,
"temperature": 0.7,
"max_output_tokens": 1024
}'
5.6 Responses API vs Chat Completions API 核心对比
| 对比维度 | Chat Completions API | Responses API |
|---|---|---|
| 参数结构 | 数组式messages,每条带role |
扁平化instructions+input |
| 协议兼容性 | 全行业兼容,生态最完善 | OpenAI 2025新标准,兼容性逐步扩展 |
| 多轮对话 | 手动维护完整messages数组 | previous_response_id自动携带历史 |
| 工具/Agent | 基础function call,手动管理 | 原生深度Agent能力,内置多工具循环 |
| 多模态 | 仅支持图片输入 | 原生支持图片、PDF、Word、TXT |
| 输出参数 | max_tokens |
max_output_tokens |
| 会话缓存 | 无 | 服务端临时缓存(几分钟~几小时) |
| 本地存储 | 必须存完整messages | 必须存完整history(resp_id只是辅助) |
八、📊 五大API格式核心对比总表
| 维度 | Completion | Chat Completions | Anthropic Messages | 国产自研 | Responses |
|---|---|---|---|---|---|
| 诞生时间 | 2020.06 | 2023.03 | 2023.03 | 2023.09 | 2025.01 |
| 当前状态 | 🚫 已淘汰 | ✅ 主流 | ✅ 主流 | ✅ 主流 | 🆕 新趋势 |
| 上下文方式 | prompt字符串拼接 | messages全量上传 | messages全量上传 | messages全量上传 | previous_response_id |
| 角色区分 | ❌ 无 | ✅ system/user/assistant/tool | ✅ system顶层+user/assistant | 各异 | instructions/input |
| 生态兼容 | 遗留系统 | 全行业 | Claude专属 | 双模式 | 逐步扩展 |
| 会话缓存 | ❌ 无 | ❌ 无 | ❌ 无 | ❌ 无 | ✅ 临时缓存 |
| Agent能力 | ❌ 无 | ⚠️ 基础 | ⚠️ 基础 | ⚠️ 基础 | ✅ 原生深度 |
| 文件解析 | ❌ 无 | ⚠️ 图片 | ⚠️ 图片 | 各异 | ✅ PDF/Word/TXT |
| 本地存储 | 必须存prompt | 必须存messages | 必须存messages | 必须存messages | 必须存history |
九、🛠️ 多轮对话上下文拼接核心对比
9.1 统一业务场景
所有API共用以下对话流程进行横向对比:
第1轮
👤 用户:你好
🤖 模型:你好,请问需要什么帮助?
第2轮(需要携带上下文)
👤 用户:帮我简单介绍大模型API的区别
9.2 各API拼接方式对比
| API类型 | 上下文携带方式 | 是否依赖本地存储 | 云端会话缓存 | 长对话传输体积 |
|---|---|---|---|---|
| OpenAI Chat Completions | 每轮全量messages上传 | ✅ 必须完整存储 | ❌ 无缓存 | 📈 持续变大 |
| OpenAI Responses | 优先previous_response_id;失效手动拼接 |
✅ 必须完整存储兜底 | ⏱️ 临时时效缓存 | 📉 正常轮次体积小 |
| Anthropic Messages | 每轮全量messages上传 | ✅ 必须完整存储 | ❌ 无缓存 | 📈 持续变大 |
| 百度千帆原生 | 每轮全量messages上传 | ✅ 必须完整存储 | ❌ 无缓存 | 📈 持续变大 |
| Ollama/火山/GLM兼容版 | 全量messages | ✅ 必须完整存储 | ❌ 无缓存 | 📈 持续变大 |
| 第一代Completion | 字符串手动拼接 | ✅ 必须拼接文本 | ❌ 无缓存 | 📈 持续变大 |
十、💡 给使用者的重要忠告
10.1 技术选型忠告
-
🎯 存量系统/兼容多厂商/本地开源模型 → 优先 Chat Completions API
- 行业通用标准,不用重构代码
- 兼容LangChain、Dify、FastGPT等全部框架
- 迁移成本最低,社区资源最丰富
-
🆕 全新自研项目、复杂Agent、文档处理、长会话 → 优先 Responses API
- 内置会话、工具、文件能力,大幅减少业务层代码
- 长期是OpenAI官方迭代方向
- 但注意:兼容性仍在扩展中,老旧框架可能不支持
-
🎭 Claude专属业务 → 使用 Anthropic Messages API
- Claude在代码、推理、安全方面有明显优势
- Prompt Caching、Computer Use等特色能力值得利用
-
🇨🇳 百度千帆私有化/商用 → 使用千帆ERNIE原生接口
- 注意顶层system字段、URL access_token鉴权、messages角色限制
-
⚠️ 新项目禁止选用第一代Completion API
- 2024年6月OpenAI已正式下线,仅维护遗留系统
10.2 开发实践忠告
-
💾 所有API业务层统一持久化完整对话历史
- 无论是否支持
previous_response_id,本地存储都是必须的 - Responses API的resp_id只是性能优化,不能替代持久化
- 无论是否支持
-
🛡️ Responses API必须做双重设计
previous_response_id提速 + 本地history兜底防缓存失效- 服务端缓存会过期、节点漂移会丢失,必须有兜底方案
-
📏 注意Token消耗与成本控制
- Chat Completions长对话请求体体积持续膨胀,注意
max_tokens设置 - Responses API区分
max_output_tokens,计费粒度更精细
- Chat Completions长对话请求体体积持续膨胀,注意
-
🔐 鉴权方式不可混用
- OpenAI用
Authorization: Bearer - 百度千帆用URL
access_token - Anthropic用
x-api-key+anthropic-version - 各厂商鉴权体系完全隔离
- OpenAI用
-
🧪 测试时务必验证多轮对话
- 单轮通不代表多轮通
- 特别注意messages顺序、角色合法性、奇偶条数等约束
-
📚 关注官方文档更新
- 大模型API迭代极快,2023-2025年几乎每季度都有重大更新
- 建议订阅OpenAI、Anthropic、各云厂商的开发者公告
10.3 架构设计忠告
┌─────────────────────────────────────────────────────────┐
│ 推荐架构设计模式 │
├─────────────────────────────────────────────────────────┤
│ 1. 抽象层:统一封装不同API的请求/响应格式 │
│ 2. 存储层:MySQL/Redis持久化完整对话历史 │
│ 3. 缓存层:response_id作为辅助缓存,减少传输体积 │
│ 4. 兜底层:缓存失效时,用本地history手动拼接上下文 │
│ 5. 监控层:Token消耗、响应延迟、错误率实时监控 │
└─────────────────────────────────────────────────────────┘
十一、🔮 未来趋势展望
- Responses API将逐步成为主流:OpenAI官方主推,新能力优先下放
- Agent原生能力成为标配:工具调用、文件解析、代码执行将内置于API层
- 多模态统一接口:文本、图片、音频、视频将统一到一个input字段
- 服务端记忆持久化:从临时缓存向永久云端记忆演进
- 国产厂商加速对齐:百度、阿里、字节等将加速推出Responses兼容接口
- 标准化与碎片化并存:通用标准(Chat Completions/Responses)与厂商特色(Anthropic Messages/千帆原生)将长期共存
📝 结语:大模型API的演进,本质上是从"文本补全"到"结构化对话"再到"智能体交互"的进化。作为开发者,理解每一代API的设计哲学和适用边界,才能在快速变化的技术浪潮中做出正确的架构决策。希望本文能成为你技术选型时的可靠参考!🚀
文档生成时间:2026年6月25日 | 基于OpenAI、Anthropic、百度、阿里、字节等官方文档及行业报告整理
📖原文: 芳林新叶催陈叶,流水前波让后波。—— 唐·刘禹锡《乐天见示伤微之敦诗晦叔三君子皆有深分因成是诗以寄》
⌛怡然: ...
更多推荐

所有评论(0)