错误与重试
Enodot 会尽量保持各协议原生错误格式,同时在日志和监控中记录统一的内部状态。
常见 HTTP 状态
| 状态 | 含义 | 常见处理 |
|---|---|---|
| 400 | 请求格式错误 | 检查 JSON、模型名、必填字段和端点协议。 |
| 401 | API Key 无效 | 重新复制 Key,确认请求头格式。 |
| 403 | 余额、订阅、权限或 IP 限制不满足 | 查看余额、订阅、分组权限和 Key 配置。 |
| 404 | 当前协议或能力不支持 | 切换端点、模型或分组。 |
| 413 | 请求体过大 | 减少上下文、文件或图片体积。 |
| 429 | Key、分组、用户或上游限额触发 | 等待窗口重置,或更换可用分组。 |
| 502 | 上游请求失败 | 重试;若持续出现,联系管理员检查账号池和链路。 |
| 503 | 可用账号不足或服务暂不可用 | 稍后重试或联系管理员。 |
客户端重试建议
建议只对临时错误做有限重试:
- 可重试:
429、502、503、连接断开、流式中断。 - 不建议重试:
400、401、明显余额不足的403。 - 使用指数退避:1s、2s、4s、8s。
- 流式请求失败后,请生成新的请求 ID,避免客户端把两次输出混在一起。
管理员侧排查顺序
- 在“运行监控”确认是否为全局错误。
- 在“用量记录”按 request id 搜索请求。
- 查看 API Key、用户、分组是否正常。
- 检查分组绑定的账号池是否还有可调度账号。
- 如果是 502,检查具体账号、渠道、网络出口和上游错误。
- 如果同一账号连续失败,临时禁用该账号或调整账号池排序。
反馈问题需要的信息
请尽量提供:
- 请求时间和时区。
- 端点路径。
- 模型名。
- request id。
- API Key 名称或末尾 4 位。
- 错误状态码和错误 JSON。
- 是否流式请求。