錯誤回應格式
Chat Completions、Responses、Messages 與 Gemini 是公開協議邊界,不是 Web API。原生協議錯誤不會包成 Web 的{ success, data, error } envelope。以下範例只適用於 Chat 與 Responses 的 OpenAI 相容 gateway 錯誤:
message 與 type;code、param 和提示擴充是選填。Messages 與 Gemini 使用各自的原生錯誤格式。可安全回傳的 upstream validation 錯誤會原樣保留;確定性的 400/422 不切換 channel,交付第一個 byte 後也不重試。
HTTP 狀態碼
錯誤類型
身份驗證錯誤 (401)
付款錯誤 (402)
存取錯誤 (403)
驗證錯誤 (400)
model_not_found。
速率限制錯誤 (429)
當您超過速率限制時:Retry-After 標頭與 retry_after 欄位皆表示在重新嘗試前需等待的確切秒數。
載荷過大 (413)
當輸入或檔案大小超過限制時:- 圖像檔案過大(最大 20MB)
- 音訊檔案過大(最大 25MB)
- 輸入文字超過模型的上下文長度
上游錯誤 (502, 503)
當所有通道皆失敗時,回應會包含替代模型:
在 Python 中處理錯誤
在 JavaScript 中處理錯誤
最佳實踐
實作指數退避
實作指數退避
當被限制速率時,在重試之間逐步增加等待時間:
設定逾時
設定逾時
始終設定合理的逾時以避免請求掛起:
記錄錯誤以利除錯
記錄錯誤以利除錯
記錄完整的錯誤回應(包含 request ID)以便支援:
處理模型特定錯誤
處理模型特定錯誤
某些模型有特定要求(例如 max tokens、圖像格式)。
在發出請求前驗證輸入。