錯誤回應格式
所有錯誤都會回傳一致的 JSON 格式:HTTP 狀態碼
| 代碼 | 描述 |
|---|---|
| 400 | Bad Request - 參數無效 |
| 401 | Unauthorized - API key 無效或缺失 |
| 402 | Payment Required - 餘額不足 |
| 403 | Forbidden - 存取被拒絕或不允許使用該模型 |
| 404 | Not Found - 找不到模型或資源 |
| 413 | Payload Too Large - 輸入或檔案大小超過限制 |
| 429 | Too Many Requests - 超過速率限制 |
| 500 | Internal Server Error - 伺服器內部錯誤 |
| 502 | Bad Gateway - 上游供應商錯誤 |
| 503 | Service Unavailable - 所有管道皆失敗 |
| 504 | Gateway Timeout - 請求逾時 |
錯誤類型
認證錯誤 (401)
| 類型 | 代碼 | 描述 |
|---|---|---|
invalid_api_key | invalid_api_key | API key 缺失或無效 |
expired_api_key | expired_api_key | API key 已被撤銷 |
支付錯誤 (402)
| 類型 | 代碼 | 描述 |
|---|---|---|
insufficient_quota | insufficient_quota | 帳戶餘額過低 |
quota_exceeded | quota_exceeded | 已達到 API key 使用限制 |
存取錯誤 (403)
| 類型 | 代碼 | 描述 |
|---|---|---|
access_denied | access_denied | 存取資源被拒絕 |
access_denied | model_not_allowed | 此 API key 不允許使用該模型 |
驗證錯誤 (400)
| 類型 | 描述 |
|---|---|
invalid_request_error | 請求參數無效 |
context_length_exceeded | 輸入內容對模型而言過長 |
model_not_found | 請求的模型不存在 |
速率限制錯誤 (429)
當您超過速率限制時:內容過大 (413)
當輸入或檔案大小超過限制時:- 圖片檔案過大 (最大 20MB)
- 音訊檔案過大 (最大 25MB)
- 輸入文字超過模型上下文長度 (context length)
上游錯誤 (502, 503)
| 類型 | 描述 |
|---|---|
upstream_error | 供應商回傳錯誤 |
all_channels_failed | 無可用供應商 |
timeout_error | 請求逾時 |
在 Python 中處理錯誤
在 JavaScript 中處理錯誤
最佳實踐
實作指數退避 (Exponential Backoff)
實作指數退避 (Exponential Backoff)
當遇到速率限制時,在重試之間逐漸增加等待時間:
設定逾時時間 (Timeouts)
設定逾時時間 (Timeouts)
務必設定合理的逾時時間,以避免請求掛起:
記錄錯誤以供偵錯
記錄錯誤以供偵錯
記錄完整的錯誤回應(包括 request ID)以便尋求支援:
處理特定模型的錯誤
處理特定模型的錯誤
某些模型有特定要求(例如:最大 token 數、圖片格式)。
在發送請求前驗證輸入。