401 先查鉴权,429 先查限流,400 再回看请求体结构和字段组合。
正在准备内容,请稍候。
正在切换页面...
网络较慢时会保留当前状态,直到新页面准备完成。
这页按排查顺序写,方便快速定位是鉴权、模型、流式还是限流问题。
401 先查鉴权,429 先查限流,400 再回看请求体结构和字段组合。
确认 `model` 来自 `/v1/models`,而不是来自某个写死的厂商模型名。
普通模式按 JSON 解析;流式模式要按 SSE 逐块消费,并在 `[DONE]` 后结束。
只保留 `model + messages` 跑一遍,再逐个加回参数定位问题。
返回 `token_invalid` 或 `token_expired`,请求直接被拒绝。
确认请求头是 `Authorization: Bearer tk_xxx`,并检查令牌是否被停用或过期。
高并发或连续重试时返回 `rate_limit_exceeded`。
先读取 `Retry-After` 和剩余额度头,再延迟重试;不要在前端做无间隔并发重发。
切换上游后客户端仍然请求旧模型 id,导致模型不存在。
始终先请求 `/v1/models`,不要在客户端常量里写死供应商模型名。
客户端把 SSE 当成普通 JSON 一次性解析。
确认客户端按 Server-Sent Events 逐块读取响应,并在收到 `[DONE]` 后结束。
| HTTP | Code | 说明 |
|---|---|---|
| 401 | token_invalid | 令牌无效、已停用,或请求头里没有合法 Bearer 令牌。 |
| 401 | token_expired | 令牌已过期,需要更换新的 API Key。 |
| 429 | rate_limit_exceeded | 命中分钟或小时级限流,响应头会带 `Retry-After`。 |
| 400 | invalid_request_error | 缺少 `model / messages`,或当前请求使用了未支持的参数组合。 |