ตอนนี้หน้านี้มีให้เฉพาะภาษาจีน แต่การนำทางและเมนูเป็นภาษาไทยแล้ว
错误码
先检查 HTTP 状态,再按返回协议读取错误。不能假设所有响应都有字符串 error.code。
网关生成的非 Anthropic 错误
{"error":{"code":404,"type":"invalid_request_error","message":"Model not found","gateway_code":"MODEL_NOT_FOUND"}}
error.code 是数值 HTTP 状态,error.gateway_code 是具体机器标识。Trace 位于响应头 X-Gateway-Trace-ID。
Anthropic Messages / count_tokens 错误
{"type":"error","error":{"type":"invalid_request_error","message":"Model not found"},"request_id":"gw-..."}
此结构只有 error.type、error.message 和 request_id,不保证 gateway_code 或字符串 code。上游错误经脱敏后可能在 error.code 中返回 UPSTREAM_REQUEST_FAILED 或 UPSTREAM_MEDIA_FETCH_FAILED。客户端应兼容这三种形态,避免显示原始上游敏感字段。
常见网关标识
| HTTP | gateway_code | 说明 |
|---|---|---|
| 400 | MODEL_REQUIRED | 缺少 model |
| 400 | INVALID_REQUEST_BODY | 语音请求结构或字段不合法;其他接口验证取决于映射 |
| 400 | PROTOCOL_TRANSFORM_FAILED / AUDIO_FORMAT_UNSUPPORTED / PROTOCOL_STREAM_UNSUPPORTED | 映射、格式或流式能力不匹配 |
| 401 | UNAUTHORIZED / INVALID_API_KEY | 缺少或无效 Key |
| 402 | INSUFFICIENT_BALANCE / KEY_BUDGET_EXCEEDED / PROJECT_BUDGET_EXCEEDED | 余额或预算不足 |
| 402 / 403 | PROJECT_DISABLED | 普通模型/列表请求 402;文件请求 403 |
| 403 | MODEL_NOT_ALLOWED | Key 不允许该模型 |
| 404 | MODEL_NOT_FOUND / MODEL_API_NOT_SUPPORTED | 模型未开放,或所选协议无映射 |
| 404 | UNSUPPORTED_ENDPOINT / VIDEO_TASK_NOT_FOUND | 路径或视频句柄不正确 |
| 405 | METHOD_NOT_ALLOWED | HTTP 方法不支持 |
| 413 | REQUEST_TOO_LARGE | 请求体超限或无法按当前入口读取 |
| 429 | RATE_LIMIT_EXCEEDED / ROUTE_CAPACITY_EXCEEDED | Key 限流或路由容量不足 |
| 500 | API_KEY_LOOKUP_FAILED / MODEL_QUERY_FAILED / MODEL_LIST_QUERY_FAILED / MODEL_RULE_CHECK_FAILED / MAPPING_QUERY_FAILED | 数据库或内部查询错误 |
| 502 | UPSTREAM_CONNECT_ERROR / UPSTREAM_TRANSPORT_ERROR / PROTOCOL_RESPONSE_TRANSFORM_FAILED | 连接、传输或响应转换失败 |
| 503 | UPSTREAM_UNAVAILABLE / RATE_LIMIT_STATE_UNAVAILABLE | 没有可用上游或限流状态不可用 |
| 504 | UPSTREAM_TIMEOUT | 上游超时,可能已经处理请求 |
未知标识应保留 HTTP 状态与 Trace 交给支持,不要按文档外推不存在的错误。文件错误参阅文件 API。
重试处理
402 需调整余额、预算或项目状态;401/403 需修复凭据与权限。429 有 Retry-After 时遵循它;5xx 仅对可以安全重试的请求做有限退避。流式 HTTP 200 后也可能产生错误事件,应停止读取并记录 Trace。