接口

错误码

报错的统一格式、每个 code 的含义和该怎么处理。

出错时 HTTP 状态码不是 200,返回体格式固定:

报错格式
{
  "error": {
    "message": "余额不足,请充值后再试。",
    "type": "relay_error",
    "code": "insufficient_quota",
    "request_id": "req_8c1f02…"
  }
}
codeHTTP含义怎么处理
invalid_api_key401Key 无效、已过期或被停用到控制台“令牌”检查 Key 状态
insufficient_quota402账户余额或这个 Key 的额度用完了充值,或调高 Key 的额度上限
rate_limited429请求太频繁降低并发,等几秒重试
invalid_request400请求参数有误看 message 里的具体说明,检查请求体
context_length_exceeded400输入超过模型的上下文长度缩短输入或换上下文更长的模型
content_filtered400请求被内容策略拦截修改内容;无审查模型一般不会触发
model_unavailable404 / 503模型名写错,或模型暂时不可用核对模型 ID,稍后重试或换一个模型
service_unavailable503 / 504服务暂时不可用稍后重试;持续出现请联系客服

重试建议

只对 429、503、504 重试,间隔逐次加倍(比如 1 秒、2 秒、4 秒),最多 3 次。401、402、400 重试没有意义,需要先解决原因。

request_id

每个响应头里都有 x-request-id,报错时返回体里也有。联系客服时带上它,可以直接定位到那一次请求。