随着大语言模型的快速发展,OpenAI 的 API 接口体系已经成为 AI 应用开发的事实标准。无论是构建聊天机器人、智能客服,还是实现代码生成、图像理解,理解 OpenAI API 的整体架构都是开发者的必修课。本文将系统性地梳理 OpenAI API 的接口体系,帮助你全面掌握其设计思路和使用方法。
一、整体架构概览
OpenAI API 的接口体系可以划分为以下几个核心模块:
- Chat Completions — 对话补全,最核心、最常用的接口
- Completions — 文本补全(Legacy,已不推荐)
- Embeddings — 文本向量化
- Images — 图像生成与编辑
- Audio — 语音转文字(Whisper)与文字转语音(TTS)
- Files — 文件上传与管理
- Fine-tuning — 模型微调
- Assistants — 助手 API(含工具调用、代码解释器等)
- Threads & Messages — 对话线程管理
- Batch — 批量请求接口
这些模块共同构成了一个完整的 AI 应用开发平台,覆盖了从基础推理到复杂 Agent 工作流的全链路需求。
二、Chat Completions — 核心对话接口
Chat Completions 是 OpenAI API 中使用频率最高的接口,也是绝大多数应用的入口。其核心设计采用多轮对话的消息列表格式:
POST /v1/chat/completions
消息角色
每条消息都有一个 role 字段,定义了消息的身份:
- system — 系统提示词,用于设定 AI 的行为方式和人格
- user — 用户输入的消息
- assistant — AI 的回复消息
- tool — 工具调用的返回结果
关键参数
| 参数 | 说明 |
|---|---|
model | 模型名称,如 gpt-4o、gpt-4o-mini、o1、o3-mini |
messages | 消息数组,包含完整对话上下文 |
temperature | 生成随机性,0-2 之间,越高越随机 |
max_tokens | 最大生成 token 数 |
top_p | 核采样参数,控制候选词范围 |
stream | 是否启用流式输出 |
response_format | 输出格式控制,可强制输出 JSON |
tools | 可调用的工具列表 |
tool_choice | 工具调用策略:auto、none 或指定工具 |
流式输出
流式输出(Streaming)是构建实时交互体验的关键。设置 stream: true 后,API 会以 Server-Sent Events(SSE)格式逐 token 返回结果,前端可以实时渲染,大幅提升用户体验。每个 chunk 包含一个 delta 对象,携带增量内容。
结构化输出
通过 response_format 参数,可以强制模型输出符合 JSON Schema 的结构化数据:
{
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "product_info",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" }
},
"required": ["name", "price"]
}
}
}
}
这解决了大模型输出不稳定、难以解析的痛点,对生产环境至关重要。
三、Function Calling — 工具调用机制
Function Calling(函数调用)是 OpenAI API 最具变革性的能力之一,它让大模型从”只会说话”进化为”能执行操作”。
工作流程
- 开发者在请求中定义可用工具(函数名称、参数描述、参数 Schema)
- 模型判断是否需要调用工具,如果需要则返回工具调用请求
- 开发者执行工具调用,将结果通过
tool角色消息返回 - 模型基于工具返回结果生成最终回复
工具定义示例
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称"
}
},
"required": ["city"]
}
}
}
并行工具调用
模型可以一次性请求调用多个工具(Parallel Tool Calls),通过 finish_reason: "tool_calls" 和多个 tool_call 条目实现。开发者需要逐一执行并返回所有结果。
四、Embeddings — 文本向量化
Embeddings 接口将文本转换为高维向量,是语义搜索、文本分类、聚类等任务的基础:
POST /v1/embeddings
核心参数:
- model — 推荐使用
text-embedding-3-small(性价比高)或text-embedding-3-large(精度更高) - input — 待向量化的文本,支持单条或批量
- dimensions — 可选,指定输出向量维度(仅 v3 模型支持降维)
典型应用场景包括语义搜索(将查询和文档都向量化后计算相似度)、文本聚类、推荐系统等。
五、Assistants API — 助手开发框架
Assistants API 是 OpenAI 提供的高层抽象,旨在简化复杂 AI 应用的开发。它将模型、指令、工具、文件等资源封装为一个”助手”对象。
核心概念
- Assistant — 助手实体,绑定模型、系统指令和可用工具
- Thread — 对话线程,自动管理消息历史,无需手动维护上下文
- Message — 线程中的消息
- Run — 一次执行过程,触发助手处理线程并生成回复
内置工具
Assistants API 内置了三种强大的工具:
- Code Interpreter — 代码解释器,可以在沙箱中执行 Python 代码,处理数据分析、数学计算、文件转换等任务
- File Search — 文件搜索,基于向量存储实现 RAG(检索增强生成),自动对上传文件进行分块、索引和检索
- Function Calling — 与 Chat Completions 中的工具调用机制一致
执行流程
创建 Assistant → 创建 Thread → 添加 Message → 创建 Run → 轮询状态 → 获取回复
Run 的状态机包括 queued → in_progress → completed / requires_action / failed 等状态。当状态为 requires_action 时,开发者需要提交工具调用结果后继续执行。
六、Images & Audio — 多模态接口
图像生成
POST /v1/images/generations
支持 DALL·E 3 和 gpt-image-1 模型,可生成指定尺寸和质量的图像。DALL·E 3 支持通过 quality 参数选择 standard 或 hd,通过 size 指定分辨率。
图像编辑
POST /v1/images/edits
基于已有图像和掩码(mask)进行局部编辑,或通过文本提示词对图像进行修改。
语音转文字(Whisper)
POST /v1/audio/transcriptions
支持多种音频格式,可输出纯文本、SRT 字幕或 VTT 格式。Whisper 模型在多语言语音识别方面表现优异。
文字转语音(TTS)
POST /v1/audio/speech
提供多种预设音色(alloy、echo、fable 等),支持流式输出音频数据,适合实时语音播报场景。
七、Fine-tuning — 模型微调
当基础模型无法满足特定领域需求时,Fine-tuning 允许使用自有数据对模型进行定制化训练:
POST /v1/fine_tuning/jobs
微调流程
- 准备数据 — 上传 JSONL 格式的训练文件,每行包含
messages数组 - 创建微调任务 — 指定基础模型和训练文件
- 监控训练 — 通过事件流跟踪训练进度
- 使用微调模型 — 训练完成后,使用
ft:gpt-4o:org-name:suffix:id格式的模型名称调用
微调适用于风格定制、领域适配、格式约束等场景,但不适合注入新知识(应优先考虑 RAG)。
八、Batch API — 批量处理
Batch API 用于处理大规模、非实时的请求,成本仅为实时 API 的 50%:
POST /v1/batches
使用流程
- 将多个请求打包为 JSONL 文件上传
- 创建 Batch 任务
- 系统在 24 小时内完成处理
- 下载结果文件
适合评估测试、大规模数据处理、内容生成等不需要即时响应的场景。
九、模型体系
OpenAI 的模型线经历了多次迭代,当前主流模型包括:
| 模型 | 定位 | 特点 |
|---|---|---|
| gpt-4o | 旗舰多模态 | 速度快、成本低、支持视觉 |
| gpt-4o-mini | 轻量级 | 极低成本,适合简单任务 |
| o1 | 推理模型 | 内置思维链,擅长复杂推理 |
| o3-mini | 轻量推理 | 推理能力与成本的平衡 |
| gpt-image-1 | 图像生成 | 最新图像生成模型 |
| text-embedding-3-small/large | 向量模型 | 文本向量化 |
推理模型(o 系列)与传统模型的核心区别在于:推理模型在生成回复前会进行内部”思考”(reasoning tokens),适合数学、编程、逻辑推理等需要深度思考的任务,但延迟更高、成本也更高。
十、最佳实践总结
- 模型选择 — 简单任务用
gpt-4o-mini,复杂任务用gpt-4o,深度推理用o1/o3-mini - 流式优先 — 交互场景务必启用
stream,提升用户体验 - 结构化输出 — 生产环境优先使用
json_schema模式,确保输出可解析 - 工具调用 — 合理使用 Function Calling,让 AI 连接外部世界
- 上下文管理 — Chat Completions 需自行管理消息历史,Assistants API 自动管理
- 成本控制 — 批量任务用 Batch API,简单嵌入用 small 模型,非实时任务降级为 mini 模型
- 错误处理 — 实现指数退避重试,关注 rate limit 和 token 上限
OpenAI API 的接口体系从基础的文本补全发展到如今涵盖多模态、工具调用、Agent 框架的完整生态,其设计思路深刻影响了整个行业。掌握这套体系,不仅能高效使用 OpenAI 的服务,也能快速迁移到其他兼容 OpenAI API 格式的模型服务(如 Azure OpenAI、各种开源模型部署方案),实现真正的模型无关架构。