OpenAI ChatGPT API 开发指南
最后更新:2026-08-12· 18 分钟阅读
🚀 快速通道
- ChatGPT 国内版:点击直达↗
- 稳定镜像站:打开镜像↗
- 官方 ChatGPT:chatgpt.com ↗

更新时间:2026-08-12
导读
调通一次 curl 只是起点。生产接入需要:密钥隔离、可观测性、限流与重试、以及对 Responses API / Chat Completions 双轨并存的迁移预案——Assistants API 还可能处于 legacy 阶段。本文面向后端与全栈,假设你已读过 API 快速入门。字段与端点以 API Reference 为准。
推荐架构:BFF / Gateway
[Web / App] ──→ [你的 BFF / Gateway] ──→ api.openai.com
│
租户鉴权、QPS 限流、
Prompt 模板、RAG 注入、
日志与 token 计量
| 层级 | 应做 | 禁止 |
|---|---|---|
| 客户端 | UI、会话 id | 持有 OpenAI Key |
| BFF | 组装 messages、合并检索结果 | 把 Key 下发浏览器 |
| Worker | 异步批处理、长任务 | 无 timeout 裸 HTTP |
| OpenAI | 推理 | 业务 RBAC |
鉴权与 Key 生命周期
Authorization: Bearer sk-...
Content-Type: application/json
- Key 从环境变量或 Vault 读取;启动时校验存在性。
- 多租户 SaaS:不要让租户共享可被提取的 Key;由后端统一代理。
- 轮换流程:新 Key 上线 → 双写验证 → 切流量 → 吊销旧 Key。
Platform 操作细节:Platform 概览。
选择 API 形态
| 形态 | 端点(示例) | 适用 |
|---|---|---|
| Responses API | /v1/responses | 官方 Quickstart 常指向;工具调用 |
| Chat Completions | /v1/chat/completions | 存量、第三方示例多 |
| Assistants API | /v1/assistants 等 | 有状态 Thread;查文档是否 legacy |
| Embeddings | /v1/embeddings | 向量,见 embeddings 指南 |
新项目: 打开 Quickstart 跟随当前推荐。旧项目: 设迁移里程碑,避免无限期双栈。Assistants 迁移见 Assistants 开发指南。
请求设计:messages 与角色
{
"model": "gpt-4o-mini",
"messages": [
{"role": "system", "content": "你是订单客服。仅回答物流与退换货;其他转人工。"},
{"role": "user", "content": "订单 12345 到哪了?"}
],
"temperature": 0.2,
"max_tokens": 512
}
gpt-4o-mini 仅为示例 model ID,请替换为文档当前型号。若跟进旗舰换挡,见 GPT-6 Astra(gpt-6-astra):生产路由务必保留回退到既有正式档,并记录核对日期。
| 角色 | 用途 |
|---|---|
system | 规则、工具说明、输出格式 |
user | 终端用户或上游系统 |
assistant | 历史回复,多轮上下文 |
tool / function | 工具返回(视 API 版本) |
多轮由你的服务维护 messages;接近上下文上限时摘要旧轮次。参数调优:文本生成。
流式输出(SSE)
聊天 UI 建议 stream: true 降低首字延迟:
curl https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"stream": true,
"messages": [{"role": "user", "content": "用五言绝句描述清晨编程"}]
}'
生产要点:
- 客户端断开时取消上游请求,避免白烧 token。
- 流式同样计费;拼接完整结果后再落库。
- 网关正确处理
text/event-stream与中间代理缓冲。
工具调用(Tools / Functions)
{
"model": "gpt-4o-mini",
"messages": [{"role": "user", "content": "查一下上海今天天气"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "用户询问某城市当前天气时调用",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}]
}
| 实践 | 说明 |
|---|---|
| schema 稳定 | 便于 prompt 回归 |
| 服务端校验参数 | 勿执行模型生成的 SQL/URL |
| 超时与幂等 | 外部 API 失败给降级文案 |
复杂编排:Agents SDK、Responses API。
错误处理与重试
import time
from openai import OpenAI, RateLimitError, APIStatusError
client = OpenAI()
RETRY = {429, 500, 502, 503, 504}
def chat_with_backoff(**kwargs):
for i in range(5):
try:
return client.chat.completions.create(**kwargs)
except RateLimitError:
time.sleep(2 ** i)
except APIStatusError as e:
if e.status_code not in RETRY:
raise
time.sleep(2 ** i)
raise RuntimeError("max retries")
- 401 / 400:配置或请求体错误,勿盲目重试。
- 429:尊重
Retry-After(若有)。 - 日志保留
x-request-id。
限流、成本与缓存
- 网关做租户级 QPS,避免单客户打满组织 RPM。
- 长上下文单独限流;输入 token 常是成本大头。
- 相同 FAQ + 相同 system 可考虑短 TTL 缓存(注意隐私与刷新)。
- 按 model、route、tenant 聚合 token 与错误率。
结构化输出
- system 声明 JSON schema 与「只输出 JSON」。
- 使用官方 Structured Outputs / JSON mode(若 model 支持)。
- 服务端 JSON Schema 校验;失败则重试或降级。
Prompt 模板:Prompt Engineering。
生产上线清单
安全
- Key 不进前端与移动端
- 输入/输出日志脱敏
- 高风险场景人工复核
可靠性
- timeout(连接 + 读)
- 429/5xx 退避
- 连续失败时熔断降级
质量
- golden prompts 发布前回归
- system prompt 版本化(Git / CMS)
合规
- 用户同意与数据留存政策
- 按业务做内容安全过滤
与 Assistants API 的关系
Assistants 提供 Assistant / Thread / Run 有状态抽象,内置 File Search 等。官方可能引导至 Responses API 或 Agents SDK。新功能立项前阅读 Assistants 开发指南 的迁移说明,勿默认 Assistants 为长期主路径。
常见问题
多微服务共用一个 Key 可以吗?
可以但不推荐;至少按环境分 Key,最好按服务分,便于泄露隔离与配额分析。
如何实现多轮「记忆」?
自管 messages 或会话摘要;或用有状态 API(Assistants 等),并评估 vendor lock-in 与成本。
stream 与非 stream 质量一样吗?
同参数下模型相同;差异在体验与实现,非质量。
产品里让用户自带 Key(BYOK)?
可行但需严格隔离与审计;多数产品由后端统一代理。
如何对比 OpenAI 与 Claude 成本?
相同评测集分别记录 token 与延迟,查 OpenAI 定价 与 Anthropic 定价。
官方资源
下一步阅读
行动路径
今天:为现有调用加 timeout 与 429 退避。明天:接入 stream 并测首 token 延迟。本周:建立 20 条 golden prompts 回归集,写一页 gateway 架构说明供团队评审。
相关内容
ChatGPT / OpenAI 开发指南总览
2026 OpenAI 开发地图:ChatGPT 网页、Platform 控制台与 API 如何分工,以及从入门到生产化的阅读顺序。
OpenAI Platform 开发文档概览
platform.openai.com 控制台、文档导航、Playground、用量计费与组织管理——开发者如何高效找 API 信息。
OpenAI API 快速入门
从 Platform 账户、API Key 到第一条 OpenAI API 调用:Responses/Completions 示例、计费、限流与安全清单(2026 实操向)。
文本生成(Text Generation)
OpenAI 文本生成参数、结构化 JSON 输出、流式与质量评测——开发视角的调参与落地方法。