
🎬 个人主页:艾莉丝努力练剑
❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》
《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》
⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平
🎬 艾莉丝的简介:

文章目录
- 1 ~> OpenAI API 体系与版本演进
-
- 1.1 两套核心 API 定位
- 1.2 核心能力对比
- 1.3 官方选型建议
- 2 ~> Chat Completions API(传统聊天接口)
-
- 2.1 接口基础信息
- 2.2 请求参数详解
-
- 2.2.1 核心必填参数
- 2.2.2 常用可选参数
- 2.2.3 消息角色(Role)定义
- 2.2.1 核心必填参数
- 2.3 请求头规范
- 2.4 响应体结构(非流式)
- 2.5 会话上下文机制
- 3 ~> Responses API(新一代多模态接口)
-
- 3.1 接口基础信息
- 3.2 核心请求参数
-
- 3.2.1 核心输入参数
- 3.2.2 常用控制参数
- 3.2.3 高级参数
- 3.2.1 核心输入参数
- 3.3 请求头规范
- 3.4 全量响应结构(非流式)
- 3.5 流式响应与事件驱动机制
-
- 3.5.1 流式开启方式
- 3.5.2 标准事件类型
- 3.5.3 流式数据解析要点
- 3.5.1 流式开启方式
- 3.6 多模态能力支持
- 4 ~> Apifox 接口测试实操流程
-
- 4.1 环境与密钥配置
-
- 4.1.1 环境变量配置
- 4.1.2 全局前置 URL 配置
- 4.1.1 环境变量配置
- 4.2 接口创建与参数配置
- 4.3 网络代理配置
- 4.4 非流式响应测试与解析
- 4.5 流式响应测试与事件解析
- 结尾

1 ~> OpenAI API 体系与版本演进
1.1 两套核心 API 定位
OpenAI 对外提供两代聊天交互 API,分别面向不同场景与技术架构:
- Chat Completions API:传统文本聊天接口,架构简单,仅面向文本交互场景
- Responses API:新一代事件驱动型接口,原生支持多模态,官方推荐新项目优先使用
1.2 核心能力对比
| 对比维度 | Chat Completions API | Responses API |
|---|---|---|
| 产品定位 | 对话生成场景(聊天机器人、客服问答、简单 FAQ) | 多模态智能助手(文本、语音、图像、函数调用等复杂交互) |
| 输入格式 | 聊天消息数组 messages:[{role, content}] | 统一输入字段 input,支持文本、音频、图像、文件等多类型 |
| 输出形式 | 完整文本回复,支持文本流式输出 | 基于语义事件流输出,包含文本增量、音频增量、工具调用、完成事件等 |
| 流式能力 | 仅支持文本逐 token 流式返回 | 支持多模态细粒度流式输出,包含文本、语音、工具调用状态 |
| 多模态支持 | 部分模型支持图像输入,能力有限 | 原生全链路支持多模态,可同步输出文本与语音 |
| 交互可控性 | 一次请求对应一次完整回复,生成过程不可干预 | 支持生成中动态打断、分支跳转、工具函数调用 |
| 典型应用 | 简单对话机器人、文本补全、问答系统 | 智能办公助手、语音对话机器人、多模态应用、Agent 系统 |
1.3 官方选型建议
- 新项目优先采用 Responses API,以适配 OpenAI 平台最新特性与多模态能力
- 存量简单文本对话项目可继续使用 Chat Completions API,具备广泛的模型兼容性
2 ~> Chat Completions API(传统聊天接口)
2.1 接口基础信息
- 请求方法:
POST - 接口地址:
https://api.openai.com/v1/chat/completions - 核心能力:文本对话生成,兼容绝大多数开源与闭源大模型
2.2 请求参数详解
2.2.1 核心必填参数
| 参数名称 | 参数类型 | 必填 | 参数说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,如 gpt-4o-mini、gpt-4.1 |
| messages | array | 是 | 对话历史数组,每条消息包含 role 与 content 字段 |
2.2.2 常用可选参数
| 参数名称 | 参数类型 | 默认值 | 参数说明 |
|---|---|---|---|
| temperature | number | 1 | 采样温度,取值范围 0~2;值越高输出随机性越强,值越低输出越确定 |
| top_p | number | 1 | 核心采样阈值,与 temperature 二选一,不可同时设置;0.1 表示仅考虑概率前 10% 的 token |
| stream | boolean | false | 是否开启流式响应,开启后以增量数据形式返回 |
| stop | string / array | none | 停止词,最多支持 4 个,模型生成到对应字符时终止输出 |
| max_tokens | integer | - | 生成内容的最大 token 数;OpenAI 官方已不推荐使用,但多数模型仍兼容 |
| max_completion_tokens | integer | - | 生成 token 数上限,包含可见输出 token 与推理 token |
| presence_penalty | number | 0 | 重复惩罚,取值 - 2.0~2.0;正值降低重复概率,负值增加重复概率 |
| frequency_penalty | number | 0 | 频率惩罚,取值 - 2.0~2.0;根据 token 出现频率惩罚,减少重复内容 |
| n | integer | 1 | 单次请求生成的回复结果数量 |
| seed | integer | - | 随机种子,指定后相同参数与种子的请求将返回确定性结果 |
| tools | array | - | 工具调用列表,仅支持函数类型工具,用于实现 Function Calling 能力 |
2.2.3 消息角色(Role)定义
system:系统提示词,用于给模型设定角色与行为规范;新版模型推荐使用developer替代developer:开发者指令,优先级高于历史消息,用于注入模型必须遵循的规则user:用户输入消息,即终端用户向模型提交的提问与内容assistant:助手回复消息,即模型生成的回答内容tool:工具调用结果,用于将外部工具执行结果返回给模型
2.3 请求头规范
| 字段名称 | 字段值 | 说明 |
|---|---|---|
| Content-Type | application/json | 请求体格式为 JSON |
| Authorization | Bearer ${API_KEY} | 认证方式为 Bearer Token,值为 OpenAI API 密钥 |
2.4 响应体结构(非流式)
1{ 2 "id": "chatcmpl-B9MBs8CjcvOU2jLnn5755qMJKT", 3 "object": "chat.completion", 4 "created": 1741569952, 5 "model": "gpt-4.1-2025-04-14", 6 "choices": [ 7 { 8 "index": 0, 9 "message": { 10 "role": "assistant", 11 "content": "Hello! How can I assist you today?", 12 "refusal": null, 13 "annotations": [] 14 }, 15 "logprobs": null, 16 "finish_reason": "stop" 17 } 18 ], 19 "usage": { 20 "prompt_tokens": 19, 21 "completion_tokens": 10, 22 "total_tokens": 29, 23 "prompt_tokens_details": { 24 "cached_tokens": 0, 25 "audio_tokens": 0 26 }, 27 "completion_tokens_details": { 28 "reasoning_tokens": 0, 29 "audio_tokens": 0, 30 "accepted_prediction_tokens": 0, 31 "rejected_prediction_tokens": 0 32 } 33 }, 34 "service_tier": "default" 35} 36
- 核心字段说明:
choices[0].message.content:模型生成的完整文本回复finish_reason:生成终止原因,常见值:stop(正常结束)、length(达到 token 上限)usage:token 消耗统计,用于计费与用量监控
2.5 会话上下文机制
- OpenAI API 本身为无状态设计,不具备会话记忆能力
- 实现多轮对话必须将完整历史对话通过
messages数组全部提交给模型 - 官方已推出记忆功能,但仅面向 C 端用户,API 调用仍需开发者自行维护上下文
3 ~> Responses API(新一代多模态接口)
3.1 接口基础信息
- 请求方法:
POST - 接口地址:
https://api.openai.com/v1/responses - 核心定位:事件驱动型多模态交互接口,官方主推的新一代 API 标准
3.2 核心请求参数
3.2.1 核心输入参数
| 参数名称 | 参数类型 | 必填 | 参数说明 |
|---|---|---|---|
| model | string | 是 | 模型名称,如 gpt-4o-mini、gpt-4.1 |
| input | string / array | 是 | 多模态输入,支持文本、图像、文件等多种格式;替代 Chat Completions 的messages字段 |
3.2.2 常用控制参数
| 参数名称 | 参数类型 | 默认值 | 参数说明 |
|---|---|---|---|
| instructions | string | - | 系统 / 开发者指令,作用等同于 system 消息;与previous_response_id联用时不会继承历史指令 |
| max_output_tokens | integer | - | 生成 token 上限,替代原max_tokens,包含可见输出与推理 token |
| temperature | number | 1.0 | 采样温度,作用与 Chat Completions 一致 |
| top_p | number | 1.0 | 核心采样阈值,作用与 Chat Completions 一致 |
| stream | boolean | false | 是否开启流式响应 |
| max_tool_calls | integer | - | 单次响应中内置工具的最大调用次数 |
| tool_choice | string | auto | 工具调用策略,可选值:auto、none、指定工具 |
| store | boolean | true | 是否存储该对话,用于后续会话继承 |
| previous_response_id | string | null | 上一条响应 ID,用于实现多轮会话上下文继承 |
3.2.3 高级参数
background:布尔值,是否后台运行模型响应,适用于长耗时任务conversation:会话 ID 或会话对象,用于关联多轮对话,响应完成后自动追加内容include:数组,指定额外输出数据,支持:- 网页搜索来源、代码解释器输出、文件搜索结果
- 输入图片 URL、输出文本 logprobs、推理加密内容
3.3 请求头规范
与 Chat Completions API 完全一致:
| 字段名称 | 字段值 | 说明 |
|---|---|---|
| Content-Type | application/json | 请求体格式为 JSON |
| Authorization | Bearer ${API_KEY} | Bearer Token 认证 |
3.4 全量响应结构(非流式)
1{ 2 "id": "resp_67ccd2bed1ec819b14f964abc54267bb6a6b4523795b", 3 "object": "response", 4 "created_at": 1741476542, 5 "status": "completed", 6 "error": null, 7 "incomplete_details": null, 8 "instructions": null, 9 "max_output_tokens": null, 10 "model": "gpt-4.1-2025-04-14", 11 "output": [ 12 { 13 "type": "message", 14 "id": "msg_67ccd2bf17f81981f3bb3cf658e6bb6a6b4523d3795b", 15 "status": "completed", 16 "role": "assistant", 17 "content": [ 18 { 19 "type": "output_text", 20 "text": "In a peaceful grove beneath a silver", 21 "annotations": [] 22 } 23 ] 24 } 25 ], 26 "parallel_tool_calls": true, 27 "previous_response_id": null, 28 "reasoning": { 29 "effort": null, 30 "summary": null 31 }, 32 "temperature": 1.0, 33 "text": { 34 "format": { 35 "type": "text" 36 }, 37 "verbosity": "medium" 38 }, 39 "tool_choice": "auto", 40 "tools": [], 41 "top_p": 1.0, 42 "truncation": "disabled", 43 "usage": { 44 "input_tokens": 36, 45 "input_tokens_details": { 46 "cached_tokens": 2 47 }, 48 "output_tokens": 22, 49 "output_tokens_details": { 50 "reasoning_tokens": 0 51 }, 52 "total_tokens": 58 53 } 54} 55
- 核心提取字段:
output[0].content[0].text为模型生成的完整文本内容
3.5 流式响应与事件驱动机制
3.5.1 流式开启方式
请求体中设置 "stream": true 即可开启流式响应,响应以 Server-Sent Events(SSE)事件流形式返回
3.5.2 标准事件类型
| 事件类型 | 触发时机 | 携带数据 |
|---|---|---|
| response.created | 响应对象创建完成,模型开始处理前 | 响应基础信息 |
| response.in_progress | 模型开始生成内容 | 进度状态 |
| response.output_text.delta | 文本增量输出,每生成一段文本触发一次 | 增量文本内容delta |
| response.output_text.completed | 单个文本输出块生成完成 | 完整文本块 |
| response.output_item.added | 新增输出项(如工具调用、音频等) | 输出项信息 |
| response.content_part.added | 新增内容分片 | 内容分片信息 |
| response.completed | 整个响应生成结束 | 最终完整响应与用量统计 |
3.5.3 流式数据解析要点
- 核心文本数据通过连续的
response.output_text.delta事件返回,每个事件携带一段增量文本 - 客户端需按顺序拼接所有
delta字段,得到完整回复 - 最终通过
response.completed事件确认响应结束,并获取最终 token 用量 - 与 DeepSeek 等模型不同,OpenAI 流式响应的结束事件同时携带完整结果
3.6 多模态能力支持
Responses API 原生支持多模态输入输出:
- 输入侧:文本、图片、文件、音频
- 输出侧:文本、音频、结构化数据、工具调用结果
- 内置工具:网页搜索、文件搜索、代码解释器、计算机调用
4 ~> Apifox 接口测试实操流程
4.1 环境与密钥配置
4.1.1 环境变量配置
在 Apifox 环境管理中配置全局环境变量,用于密钥管理:
| 变量名 | 类型 | 说明 |
|---|---|---|
| CHATGPT_APIKEY | 秘密 | ChatGPT 官方 API 密钥 |
| DEEPSEEK_APIKEY | 秘密 | DeepSeek API 密钥 |
| GEMINI_APIKEY | 秘密 | Gemini API 密钥 |
4.1.2 全局前置 URL 配置
- ChatGPT 官方接口基础地址:
https://api.openai.com - 所有接口继承全局前置 URL,避免重复填写域名
4.2 接口创建与参数配置
- 新建接口,请求方法选择
POST,路径填写/v1/responses - 请求头配置:
- Content-Type:
application/json - Authorization:
Bearer {{CHATGPT_APIKEY}}
- Content-Type:
- 请求体(Body)配置:
- 选择 JSON 格式,填写核心参数:
model、input、stream等 - 示例:
- 选择 JSON 格式,填写核心参数:
4.3 网络代理配置
由于 OpenAI 接口为外网服务,需配置请求代理:
- 代理模式:自定义代理
- 代理服务器:
127.0.0.1 - 代理端口:
7890(本地代理工具默认端口) - 生效范围:仅应用于发送接口请求,不影响 Apifox 服务器连接
4.4 非流式响应测试与解析
- 发送请求,响应状态码为
200 OK表示请求成功 - Apifox 自动反序列化 JSON 响应体,展示结构化数据
- 核心数据提取路径:
output[0].content[0].text,即为模型返回的文本内容 - 可通过
usage字段查看本次请求的 token 消耗情况
4.5 流式响应测试与事件解析
- 请求体设置
"stream": true,发送请求 - Apifox 控制台实时展示事件流,按时间顺序输出所有事件
- 解析要点:
- 忽略初始的创建、进度事件,聚焦
response.output_text.delta事件 - 每个 delta 事件携带一段增量文本,按顺序拼接得到完整内容
- 最终通过
response.completed事件确认响应结束
- 忽略初始的创建、进度事件,聚焦
- 代码实现时,需使用 SSE 解析器逐事件处理,实现打字机效果
结尾
uu们,本文的内容到这里就全部结束了,艾莉丝在这里再次感谢您的阅读!
艾莉丝努力练剑 C/C++ & Linux 底层探索者 | 一个正在努力练剑的技术博主 👀 【关注】 跟随我一起深耕技术领域,见证每一次成长。 ❤️ 【点赞】 让优质内容被更多人看见,让知识传递更有力量。 ⭐ 【收藏】 把核心知识点存好,在需要时随时查、随时用。 💬 【评论】 分享你的经验或疑问,评论区一起交流避坑! **不要忘记给博主“一键四连”哦! “今日练剑达成!” “技术之路难免有困惑,但同行的人会让前进更有方向。” |
|---|
结语:希望对学习Linux相关内容的uu有所帮助,不要忘记给博主“一键四连”哦!
**往期回顾:
🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡
૮₍ ˶ ˊ ᴥ ˋ˶₎ა
《【AI大模型接入SDK】ChatGPT API》 是转载文章,点击查看原文。
“技术之路难免有困惑,但同行的人会让前进更有方向。”