跳转到内容

故障排查

排障时不要一开始就修改代码。先确认问题发生在哪一层,通常能更快找到原因。

先在不携带密钥的情况下请求:

终端窗口
curl -i https://api.lowprice.one/v1/models

如果能够返回 HTTP 状态码和 JSON,例如 401 API key is required,说明 DNS、TLS 和网络链路已经基本正常。401 在这里是预期结果,不是故障。

若出现连接超时、证书错误或无法解析域名:

  • 检查本地网络和代理
  • 尝试关闭再开启代理
  • 换一个网络环境测试
  • 确认系统时间正确

带上密钥请求:

终端窗口
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]

服务端已开始返回后再断开连接,通常要检查客户端读取循环、代理缓冲和连接空闲超时。

请求超时可能来自模型生成时间、输入长度、并发过高或代理链路。建议:

  1. 缩短输入和输出
  2. 降低并发
  3. 为客户端设置合理超时
  4. 对可重试错误使用指数退避
  5. 记录失败开始时间与 Request ID

浏览器直连返回 CORS 或网络错误

Section titled “浏览器直连返回 CORS 或网络错误”

不建议浏览器直接携带 API Key 调用网关。正确做法是由自己的服务端代理请求上游,再由前端调用自己的接口。

请先准备:

  • 请求时间和时区
  • 使用的接口路径
  • 模型调用名
  • HTTP 状态码
  • Response Body(移除密钥)
  • Request ID
  • 客户端名称与版本

然后前往联系与反馈。