LLM API 报错排查指南:401、429、超时一次讲清

盈算智服 · 2026-10-29 · 阅读约 8 分钟
LLM API报错 API调试 开发者指南

接入大模型 API 的第一天,你大概率不会先遇到成功响应,而是先遇到一段英文报错:401、429、timeout。这三个错误占了新手排障时间的 90%,但绝大多数并不需要联系服务商——按本文的方法,三分钟内自己就能定位。

一、先看速查表:报错代码对号入座

状态码含义常见原因第一动作
401鉴权失败Key 错误/未传/格式不对curl 直测 Key
403无权限模型不在套餐内、账户被停查模型清单与余额
429触发限流超过 RPM/TPM 上限指数退避重试
500/502服务端错误网关或上游模型异常等 30 秒重试
超时无响应本地网络/长文本推理慢加大 timeout 分层定位

二、401 鉴权失败:三步定位法

401 是最常见也最容易误判的错误。很多人一看"Invalid API Key"就去反复生成新 Key,其实问题往往不在 Key 本身。按下面三步走:

第一步:用 curl 绕过你的代码直测。这一步能立刻把"Key 有问题"和"代码有问题"切开:

curl https://yingsuan.top/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-你的Key" \
  -d '{"model": "deepseek-chat", "messages": [{"role": "user", "content": "hi"}]}'

curl 返回正常回复,说明 Key 和网络都没问题,问题一定在你的代码里。常见代码侧坑有三个:

一个反直觉的技巧:如果你在浏览器里报 401,但 curl 直发正常,先对比两边的报错文案是否一字不差。文案有细微出入(少个字母、多个字符),多半不是后端真的拒绝了你,而是 Cloudflare 边缘或浏览器插件篡改了响应——这时该查的是链路,不是 Key。

三、429 限流:不是故障,是规则

429 表示你触发了速率限制(RPM = 每分钟请求数,TPM = 每分钟 token 数)。免费额度通常限 5 RPM 左右,并发跑批时很容易撞上。正确姿势是指数退避重试,而不是疯狂刷新:

import time, requests

def call_with_backoff(payload, headers, max_retry=5):
    for i in range(max_retry):
        r = requests.post(
            "https://yingsuan.top/v1/chat/completions",
            json=payload, headers=headers, timeout=60)
        if r.status_code == 429:
            wait = 2 ** i          # 1, 2, 4, 8, 16 秒
            time.sleep(wait)
            continue
        return r
    raise RuntimeError("多次重试后仍被限流,请降低并发或申请提额")

三个实用建议:

四、超时与 5xx:分层定位

超时最忌讳"哪里慢就无限等"。正确做法是先给足合理的 timeout,再分层排查。用 curl 的计时参数可以看清每一段耗时:

curl -w "DNS解析: %{time_namelookup}s\nTCP连接: %{time_connect}s\n服务响应: %{time_starttransfer}s\n总耗时: %{time_total}s\n" \
  -o /dev/null -s https://yingsuan.top/v1/models \
  -H "Authorization: Bearer sk-你的Key"

5xx 是服务端问题,重试策略与 429 类似但等待时间可以更长(30 秒起步)。如果同一模型连续失败超过 10 分钟,换个模型先跑通业务,再向服务商反馈——这也是聚合网关的价值:一个模型故障,一键切到备选模型。

五、通用排查工作流:四步走

报错排查四步法

  1. 分离变量:curl 直测,把 Key、网络、代码三个变量拆开,一次只怀疑一个;
  2. 最小化请求:用最短的 prompt、最简单的参数复现问题,排除是"请求太复杂"还是"链路不通";
  3. 保留原始报错:把 HTTP 状态码 + 响应体完整记录,不要只看框架包装后的异常信息;
  4. 先绕行再修复:生产环境先切备用模型保证业务不中断,再慢慢修。

六、常见问题 FAQ

Q1:Key 明明没填错,为什么还是 401?

九成是环境变量没加载(进程没重启)或 base_url 域名不对。先跑本文第二节的 curl 命令,确认 Key 和域名都没问题后,再检查代码里的请求头拼接。

Q2:429 重试几次合适?

指数退避 5 次(累计等待约 31 秒)是业界常规。如果 5 次后仍限流,说明你的业务量已经超出当前套餐配额,该升级而不是继续重试。

Q3:timeout 设置多少秒合理?

普通对话模型 60 秒;推理类模型(deepseek-reasoner 等)建议 120~180 秒;开流式输出后首 token 通常几秒内返回,体验更稳。

Q4:5xx 报错要重试吗?会不会重复扣费?

5xx 表示请求没有被成功处理,重试是安全的。规范的服务商只对成功响应计费,失败请求不产生 token 消耗。

Q5:有没有工具能一键测试 API 连通性?

curl 是最可靠的。另外大部分聚合平台(如盈算智服网关)提供模型列表接口 GET /v1/models,用它做"轻量探活"比真实对话请求便宜且快。

🎁 拿到 Key 再来看这篇

盈算智服 LLM API 网关:免费试用 100 次请求,60 秒即时开通,无需信用卡,兼容 OpenAI 接口格式,DeepSeek、Kimi K3 等主流模型一站切换。

🎁 免费试用100次