错误响应格式
所有错误都返回一致的 JSON 格式,并带有可选的 Agent-First 提示:message、type、code、param)始终存在。提示字段(did_you_mean、suggestions、hint、retryable、retry_after、balance_usd、estimated_cost_usd)是用于 AI agent 自我修正的可选扩展。详情请参阅 Agent-First API 指南。
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)
当您超出速率限制时:Retry-After header 和 retry_after 字段都指示了重试前需要等待的确切秒数。
有效负载过大 (413)
当输入或文件大小超出限制时:- 图像文件过大(最大 20MB)
- 音频文件过大(最大 25MB)
- 输入文本超出模型上下文长度
上游错误 (502, 503)
| 类型 | 描述 |
|---|---|
upstream_error | 供应商返回错误 |
all_channels_failed | 无可用供应商 |
timeout_error | 请求超时 |
在 Python 中处理错误
在 JavaScript 中处理错误
最佳实践
实现指数退避
实现指数退避
当受到速率限制时,在重试之间逐渐延长等待时间:
设置超时
设置超时
始终设置合理的超时时间,以避免请求挂起:
记录错误以便调试
记录错误以便调试
记录完整的错误响应(包括用于支持的请求 ID):
处理特定于模型的错误
处理特定于模型的错误
某些模型有特定要求(例如最大 token 数、图像格式)。在发起请求前验证输入。