Skip to main content

错误格式

所有错误均遵循统一的 JSON 格式:

错误类型

常见错误与解决方案

401 — API Key 无效

解决方案: 检查您的 API key 是否正确且未被撤销。

403 — 提供商不被允许

解决方案: 您的 API key 存在 allowed_providers 限制。请使用其他密钥,或通过管理 API 更新允许的提供商。

429 — 触发限流

解决方案: 实施指数退避策略。考虑提高该密钥的速率限制。

502 — 上游请求失败

解决方案: LLM 提供商返回错误或无法访问。ARouter 会自动处理密钥故障转移,但提供商本身可能正在经历问题。请重试或切换到其他提供商。

在代码中处理错误

重试策略

对于生产应用,我们建议:
  1. 对 429 和 502 使用指数退避重试
  2. 不要重试 400、401、403 — 这些是永久性错误
  3. 设置最大重试次数(例如 3 次)
  4. 考虑多模型路由 — 如果某个模型无法处理请求,可通过 modelsroute 发送有序候选列表

流式传输中的错误处理

当使用流式传输(stream: true)时,错误的行为因发生时机而有所不同:
  • 在发送任何 Token 之前 — ARouter 返回带有非 200 状态码的标准 HTTP 错误响应,处理方式与非流式错误相同。
  • 在 Token 已发送之后 — HTTP 状态已经是 200 OK,错误将作为 SSE 事件在流体内容中传递。
流中途错误格式如下:
检查每个数据块的 finish_reason。如果值为 "error",则表示流异常终止。
完整的流式错误处理示例请参阅流式传输指南