Documentation Index
Fetch the complete documentation index at: https://docs.crazyrouter.com/llms.txt
Use this file to discover all available pages before exploring further.
HTTP 状态码
| 状态码 | 说明 | 处理建议 |
|---|
| 200 | 请求成功 | - |
| 400 | 请求参数错误 | 检查请求体格式和参数 |
| 401 | 认证失败 | 检查 API Key 是否正确 |
| 403 | 权限不足 | 检查令牌是否有权限访问该模型 |
| 404 | 资源不存在 | 检查 URL 路径 |
| 429 | 请求频率超限 | 降低请求频率或联系管理员 |
| 500 | 服务端 5xx 错误 | 可重试;可能是本站内部错误,也可能是上游 5xx 通过本站返回 |
| 502 | 网关或上游结果获取失败 | 通常表示已进入上游调用阶段,但未能拿到有效上游响应或结果,可重试 |
| 503 | 服务不可用 | 系统维护中 |
500 与 502 的区别
500 是更宽泛的服务端错误。在 CrazyRouter 中,它既可能表示本站内部错误,也可能表示上游直接返回了 5xx,再由本站中继给客户端。
502 更具体,通常表示请求已经到达 CrazyRouter 的网关或上游调用阶段,但 CrazyRouter 无法拿到有效的上游响应或结果,例如上游不可达、返回无效网关级响应,或任务结果地址取回失败。
- 如果同类问题持续出现:
- 大量
502 通常优先检查上游渠道可用性、网络连通性和结果 URL 是否可访问。
- 大量
500 需要结合错误类型和日志进一步区分;只有明确标记为站内 site_internal 或 panic 一类时,才应直接视为 CrazyRouter 自身问题。
Chat Completions 状态码
{
"error": {
"message": "错误描述",
"type": "error_type",
"code": "error_code"
}
}
| code | 说明 |
|---|
invalid_api_key | API Key 无效或已过期 |
insufficient_quota | 余额不足 |
model_not_found | 模型不存在或未启用 |
context_length_exceeded | 输入超过模型上下文长度限制 |
rate_limit_exceeded | 请求频率超限 |
content_filter | 内容被安全过滤器拦截 |
Midjourney 任务状态码
| 状态 | 说明 |
|---|
NOT_START | 任务未开始 |
SUBMITTED | 已提交 |
IN_PROGRESS | 生成中 |
SUCCESS | 生成成功 |
FAILURE | 生成失败 |
CANCEL | 已取消 |
MJ 错误码
| code | 说明 |
|---|
| 1 | 提交成功 |
| 21 | 任务已存在 |
| 22 | 排队中 |
| 23 | 队列已满 |
| 24 | 提交失败 |
Kling 视频状态码
| 状态 | 说明 |
|---|
queued | 已提交或排队中 |
processing | 处理中 |
succeeded | 生成成功 |
failed | 生成失败 |
即梦任务状态码
| 状态 | 说明 |
|---|
queued | 已提交或排队中 |
processing | 处理中 |
succeeded | 生成成功 |
failed | 生成失败 |
Luma 视频状态码
| 状态 | 说明 |
|---|
pending | 等待中 |
processing | 处理中 |
completed | 完成 |
failed | 失败 |
Suno 音乐状态码
| 状态 | 说明 |
|---|
submitted | 已提交 |
processing | 生成中 |
complete | 完成 |
error | 错误 |
Runway 视频状态码
| 状态 | 说明 |
|---|
PENDING | 等待中 |
RUNNING | 生成中 |
SUCCEEDED | 成功 |
FAILED | 失败 |
通用错误处理建议
遇到 429 错误时,请勿立即重试。建议使用指数退避策略(Exponential Backoff),初始等待 1 秒,每次翻倍。
import time
import requests
def request_with_retry(url, headers, json_data, max_retries=3):
for i in range(max_retries):
response = requests.post(url, headers=headers, json=json_data)
if response.status_code == 429:
wait = 2 ** i
print(f"频率限制,等待 {wait} 秒后重试...")
time.sleep(wait)
continue
return response
return response