配置排错

报错排查手册:从状态码到修复动作

更新于 2026-07-20 · 适用于 OpenAI / Anthropic 兼容接口

排错的原则是控制变量:先用最短的命令确认通路,再回到工具里改配置。大多数报错都落在五个状态码里,每个状态码对应的第一检查项是固定的,不需要碰运气。

先跑两条诊断命令

任何工具里报错,都先脱离工具、用 curl 直接打接口。两条命令都通,说明问题在工具配置;命令就不通,说明问题在 Key、地址或网络。

# 1)鉴权与模型列表(通 = Key 和域名都对)
curl -s https://codebridgeapi.top/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

# 2)最小对话请求(通 = 模型名和协议都对)
curl -s https://codebridgeapi.top/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"<从 /v1/models 复制>","messages":[{"role":"user","content":"ping"}]}'

五个状态码,五个第一反应

状态码含义第一检查项典型修复
401鉴权失败Authorization 头里的 Key 是否完整、无空格、属于本站重新从控制台复制 Key;确认没把别的平台的 Key 填进来
403无权访问该资源Key 是否被禁用/回收,或该模型分组是否对你的账号开放控制台确认 Key 状态与可用分组;必要时新建 Key
404路径不存在Base URL 与协议是否成对(OpenAI 兼容带 /v1,Anthropic 兼容不带)改 Base URL,不要在末尾多拼一层路径
429触发限流是否短时间高并发,或多个任务共用同一把 Key退避重试;把批量任务的并发降下来或分 Key
529上游过载是暂时性的,不是你的配置问题指数退避重试;高峰期把重试间隔放宽

超时(无状态码)单独说:先区分"连接超时"和"读超时"。连接超时查网络与域名;读超时多见于长输出任务,把客户端超时上限调到 120 秒以上,或改用流式输出边收边处理。

一段可以抄走的重试退避

429 和 529 都适合自动重试,但要退避加抖动,不要固定间隔硬打。下面是 Python 版最小实现,Node 同理。

import time, random
from openai import OpenAI, APIStatusError

client = OpenAI(base_url="https://codebridgeapi.top/v1", api_key="YOUR_API_KEY")

def chat_with_retry(messages, model, max_retries=4):
    for attempt in range(max_retries + 1):
        try:
            return client.chat.completions.create(model=model, messages=messages)
        except APIStatusError as err:
            # 只对暂时性状态码重试;4xx 配置类错误重试没有意义
            if err.status_code not in (429, 500, 529) or attempt == max_retries:
                raise
            wait = min(2 ** attempt + random.random(), 30)
            time.sleep(wait)

401/403/404 属于配置错误,重试一万次也不会变好——修配置,别重试。