Corion

错误与重试

API 错误在可能的情况下使用与 OpenAI 兼容的 JSON 结构:

{
  "error": {
    "message": "A human-readable explanation",
    "type": "invalid_request_error",
    "param": null,
    "code": "invalid_request"
  }
}

在 MVP 集成阶段,客户端应能容忍额外的请求标识符或提供商元数据,且不应依赖精确的消息文本。

状态码含义是否重试?
400JSON 无效、参数不受支持或请求校验失败否;请修正请求。
401API 密钥缺失、格式错误、已被吊销或无效否;请验证或更换密钥。
402账户额度已耗尽否;请充值或联系账户所有者。
403已通过身份验证,但无权访问该资源或模型否;请核实账户权限。
413请求体超出端点允许的大小否;请缩减提示词或请求负载。
429触发了速率或并发限制是;若存在 Retry-After 请遵循其值。
500意外的 Corion 应用或网关错误通常可以;请谨慎重试。
502上游提供商返回了不可用的响应通常可以;退避后重试。
503当前没有可用的提供商容量是;退避后重试。

在公共网关契约最终确定之前,状态码映射可能会发生变化。客户端应主要根据 HTTP 状态类别以及发布后稳定的机器可读 error.code 值进行分支处理。

重试策略

429500502503 使用指数退避加随机抖动进行重试。遵循 Retry-After;否则从约一秒开始并设置延迟上限。限制最大尝试次数,并在达到上限后明确报告失败,而非无限重试。

不要自动重试 400401402403413。在不更改请求或账户状态的情况下重试不太可能成功。

对于非流式请求,如果未来的 API 版本文档中定义了应用级幂等标识符,请发送该标识符。MVP 目前尚未保证聊天补全接口的幂等性。

对于流式请求,请保留已接收的部分响应,并在出现重复文本可能造成不良影响时先询问用户再重新开始。流中断并不能证明提供商没有执行工作,计费用量可能仍然已经发生。