故障排查
排障时不要一开始就修改代码。先确认问题发生在哪一层,通常能更快找到原因。
第 1 层:网络是否可达
Section titled “第 1 层:网络是否可达”先在不携带密钥的情况下请求:
curl -i https://api.lowprice.one/v1/models如果能够返回 HTTP 状态码和 JSON,例如 401 API key is required,说明 DNS、TLS 和网络链路已经基本正常。401 在这里是预期结果,不是故障。
若出现连接超时、证书错误或无法解析域名:
- 检查本地网络和代理
- 尝试关闭再开启代理
- 换一个网络环境测试
- 确认系统时间正确
第 2 层:鉴权是否正确
Section titled “第 2 层:鉴权是否正确”带上密钥请求:
curl -i https://api.lowprice.one/v1/models \ -H "Authorization: Bearer $LOWPRICE_API_KEY"检查:
- Key 是否完整复制
- 是否误把
Bearer写进了 Key 字段 - Key 是否已删除或禁用
- 请求头是否为
Authorization,而不是拼写错误的自定义头
第 3 层:模型与请求体是否正确
Section titled “第 3 层:模型与请求体是否正确”确认调用名来自控制台或 /v1/models。不要在示例中直接使用“你的模型调用名”占位符。
检查:
Content-Type: application/json- JSON 是否合法
model字段是否存在messages是否为数组- 输入是否超过模型上下文限制
- Base URL 是否重复出现
/v1
第 4 层:响应与流式读取是否正确
Section titled “第 4 层:响应与流式读取是否正确”如果非流式请求成功,但流式输出失败:
- 检查客户端是否设置了
stream: true - 确认客户端支持 Server-Sent Events
- 检查代理是否缓冲了响应
- 确认代码正确读取
data:行和[DONE]
服务端已开始返回后再断开连接,通常要检查客户端读取循环、代理缓冲和连接空闲超时。
请求超时可能来自模型生成时间、输入长度、并发过高或代理链路。建议:
- 缩短输入和输出
- 降低并发
- 为客户端设置合理超时
- 对可重试错误使用指数退避
- 记录失败开始时间与 Request ID
浏览器直连返回 CORS 或网络错误
Section titled “浏览器直连返回 CORS 或网络错误”不建议浏览器直接携带 API Key 调用网关。正确做法是由自己的服务端代理请求上游,再由前端调用自己的接口。
请先准备:
- 请求时间和时区
- 使用的接口路径
- 模型调用名
- HTTP 状态码
- Response Body(移除密钥)
- Request ID
- 客户端名称与版本
然后前往联系与反馈。