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 輸出、串流與品質評測——開發視角的調參與落地方法。