接口
错误码
报错的统一格式、每个 code 的含义和该怎么处理。
出错时 HTTP 状态码不是 200,返回体格式固定:
{
"error": {
"message": "余额不足,请充值后再试。",
"type": "relay_error",
"code": "insufficient_quota",
"request_id": "req_8c1f02…"
}
}| code | HTTP | 含义 | 怎么处理 |
|---|---|---|---|
invalid_api_key | 401 | Key 无效、已过期或被停用 | 到控制台“令牌”检查 Key 状态 |
insufficient_quota | 402 | 账户余额或这个 Key 的额度用完了 | 充值,或调高 Key 的额度上限 |
rate_limited | 429 | 请求太频繁 | 降低并发,等几秒重试 |
invalid_request | 400 | 请求参数有误 | 看 message 里的具体说明,检查请求体 |
context_length_exceeded | 400 | 输入超过模型的上下文长度 | 缩短输入或换上下文更长的模型 |
content_filtered | 400 | 请求被内容策略拦截 | 修改内容;无审查模型一般不会触发 |
model_unavailable | 404 / 503 | 模型名写错,或模型暂时不可用 | 核对模型 ID,稍后重试或换一个模型 |
service_unavailable | 503 / 504 | 服务暂时不可用 | 稍后重试;持续出现请联系客服 |
重试建议
只对 429、503、504 重试,间隔逐次加倍(比如 1 秒、2 秒、4 秒),最多 3 次。401、402、400 重试没有意义,需要先解决原因。
request_id
每个响应头里都有 x-request-id,报错时返回体里也有。联系客服时带上它,可以直接定位到那一次请求。