路由与排错
错误码与限流
常见 HTTP 状态码、错误类型与处理方法,以及限流规则。
出错时返回 JSON,包含错误类型、说明和平台请求编号:
{
"error": {
"type": "insufficient_balance",
"message": "账户可用余额不足,请充值后重试。",
"request_id": "req_01J9..."
}
}联系支持时请提供 request_id。错误信息不会包含上游凭据或内部地址。
状态码
| 状态码 | 错误类型 | 原因 | 怎么处理 |
|---|---|---|---|
| 400 | invalid_request | 参数缺失或格式错误;模型不支持请求里的能力 | 按 message 修改请求 |
| 401 | invalid_api_key | Key 不存在、已撤销或已过期 | 检查 Key,必要时重新创建 |
| 402 | insufficient_balance | 钱包可用余额不足 | 充值 |
| 403 | model_not_allowed | 这个 Key 没有该模型的权限 | 修改 Key 的可用模型 |
| 403 | budget_exceeded | Key 的总预算或日 / 月预算已用完 | 等周期切换或调高预算 |
| 403 | member_quota_exhausted / project_quota_exhausted | 额度分配的个人或项目额度已用完 | 联系分配额度的老师 |
| 404 | model_not_found | 模型 ID 不存在 | 到 模型广场 核对 ID |
| 429 | rate_limited | 超过 Key 或账户的速率、并发限制 | 按响应头 Retry-After 等待后重试 |
| 502 | upstream_error | 上游返回错误 | 稍后重试;持续出现请联系支持 |
| 504 | upstream_timeout | 上游超时 | 用量进入待核对,见 失败请求如何收费 |
以上是首版设计的错误类型,上线前可能微调,以正式接口为准。
限流
限流按层叠加,任何一层达到上限都会返回 429:
- Key 级:创建 Key 时设置的每分钟请求数、tokens 与并发数。
- 账户级:每个账户的总并发上限。
- 上游级:上游平台对每个模型的限流。上游限流时同样返回 429,并尽量带上
Retry-After。
建议在程序里对 429 和 5xx 做指数退避重试,并设置最大重试次数。不要对已经开始输出内容的流式请求自动重放。