错误码
当 API 请求失败时,ClawdRouter 会返回标准的 HTTP 状态码和错误信息。
HTTP 状态码
| 状态码 | 说明 | 处理建议 |
|---|---|---|
200 | 请求成功 | — |
400 | 请求参数错误 | 检查请求体格式和参数是否正确 |
401 | 认证失败 | 检查 API Key 是否正确,Authorization Header 格式是否为 Bearer YOUR_API_KEY |
403 | 权限不足 | API Key 无权访问该模型或资源 |
404 | 资源不存在 | 检查请求路径和模型名称是否正确 |
429 | 请求频率超限 | 降低请求频率,参考速率限制 |
500 | 服务器内部错误 | 服务端异常,请稍后重试或提交工单联系技术支持 |
502 | 网关错误 | 上游服务暂时不可用,请稍后重试 |
503 | 服务不可用 | 服务正在维护或过载,请稍后重试 |
错误响应格式
{
"error": {
"message": "Invalid API Key provided",
"type": "authentication_error",
"code": "invalid_api_key"
}
}
| 字段 | 说明 |
|---|---|
error.message | 错误描述 |
error.type | 错误类别 |
error.code | 错误码 |
常见错误类型
authentication_error
认证相关错误。
| 错误码 | 说明 | 解决方法 |
|---|---|---|
invalid_api_key | API Key 无效 | 确认 API Key 是否正确,是否已过期或被禁用 |
missing_api_key | 缺少 API Key | 在请求头中添加 Authorization: Bearer YOUR_API_KEY |
invalid_request_error
请求参数错误。
| 错误码 | 说明 | 解决方法 |
|---|---|---|
invalid_model | 模型不存在 | 检查 model 参数值是否在模型列表中 |
invalid_messages | 消息格式错误 | 检查 messages 数组格式是否正确 |
context_length_exceeded | 上下文长度超限 | 减少输入消息内容或使用支持更长上下文的模型 |
rate_limit_error
频率限制错误。
| 错误码 | 说明 | 解决方法 |
|---|---|---|
rate_limit_exceeded | 请求频率超限 | 降低请求频率,实施指数退避重试策略 |
quota_exceeded | 配额用尽 | 检查账户余额或提升配额 |
重试策略建议
对于可重试的错误(429、500、502、503),建议实施 指数退避 策略:
import time
import random
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.clawdrouter.com/v1",
)
def call_with_retry(max_retries=3):
for attempt in range(max_retries):
try:
return client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "你好"}],
)
except Exception as e:
if attempt == max_retries - 1:
raise
wait_time = (2 ** attempt) + random.random()
print(f"请求失败,{wait_time:.1f}s 后重试...")
time.sleep(wait_time)