常见错误码说明

HTTP 状态码

状态码 含义 处理建议
200 请求成功
400 请求参数错误 检查 JSON 格式、必填参数是否缺失
401 认证失败 检查 API Key 是否正确、是否已过期或被禁用
403 权限不足 该 Key 可能未被授权访问此模型
429 请求频率超限 降低请求频率,或联系客服提升 RPM 配额
500 服务端错误 重试请求;如持续出现请提交工单
502/503 上游模型服务异常 稍后重试;可切换到其他模型

错误响应格式

{
  "error": {
    "message": "Invalid API key provided: sk-nex-xxx...xxx.",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}

常见错误及解决方案

invalid_api_key

Invalid API key provided

原因: API Key 不正确或已被删除。

解决: 前往控制台确认 Key 状态,重新复制完整的 Key。

model_not_found

Model 'xxx' not found

原因: 模型 ID 拼写错误,或该模型未在您的套餐中启用。

解决: 检查模型 ID 是否正确(区分大小写)。可通过 /v1/models 端点查询完整模型列表。

rate_limit_exceeded

Rate limit exceeded

原因: 请求频率超过 RPM(每分钟请求数)配额。

解决: 降低请求频率,增加请求间隔。如需更高配额请联系客服。

context_length_exceeded

This model's maximum context length is xxx tokens

原因: 输入 + 输出的总 token 数超过模型上限。

解决: 减少输入内容长度,或降低 max_tokens 参数值。

重试策略建议

对于 429 和 5xx 错误,建议使用指数退避重试:

import time
import openai
 
def call_with_retry(client, max_retries=3, **kwargs):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(**kwargs)
        except openai.RateLimitError:
            wait = 2 ** attempt
            print(f"Rate limited, waiting {wait}s...")
            time.sleep(wait)
        except openai.APIStatusError as e:
            if e.status_code >= 500:
                wait = 2 ** attempt
                time.sleep(wait)
            else:
                raise
    raise Exception("Max retries exceeded")