错误码

识别 Sublyx API 错误,决定是否修正请求、充值或重试。

先根据 HTTP 状态码判断错误类别,再读取响应体中的 error、code、type 或 message 字段。日志中应保留请求标识,但必须遮蔽 API Key 和敏感内容。

常见状态码

状态码或错误含义建议
400 Bad RequestJSON、参数或模型配置无效检查请求体和必填字段
API_KEY_REQUIRED未提供 API Key添加认证请求头
401 UnauthorizedKey 无效、过期或已停用检查 Key 与请求头格式
402 Payment Required账户余额不足登录控制台充值
404 Not Found路径或模型不存在检查 Base URL、端点与模型 ID
429 Too Many Requests触发速率或并发限制退避后重试并控制并发
500 Internal Server Error服务端内部异常短暂退避后重试
502 Bad Gateway上游响应异常重试或切换模型
503 Service Unavailable服务暂时不可用退避重试并启用降级
504 Gateway Timeout上游调用超时缩短输入、调整超时或重试

错误响应示例

{
  "error": {
    "type": "invalid_request_error",
    "code": "API_KEY_REQUIRED",
    "message": "API key is required"
  }
}

不同兼容协议的字段可能不同,不要只匹配错误文案。优先使用 HTTP 状态码与稳定的错误类型。

是否应该重试

错误类型自动重试
参数错误、认证失败、余额不足否,先修正配置
速率限制是,读取等待信息并指数退避
500、502、503、504是,限制次数并加入随机抖动
网络中断视幂等性决定
retry.ts
const retryable = new Set([429, 500, 502, 503, 504]);

async function wait(attempt: number) {
  const base = Math.min(1000 * 2 ** attempt, 10_000);
  const jitter = Math.random() * 300;
  await new Promise((resolve) => setTimeout(resolve, base + jitter));
}

流式请求的重试

流中断后重试可能产生重复内容。应用需要记录已接收片段、请求状态和幂等上下文,避免简单地从头追加。

本页目录