响应与解析 / JSON PARSE
AI API 响应 JSON 解析失败:定位与修复
直接答案
先保存脱敏后的原始响应与 Content-Type,区分空响应、HTML 错误页、不完整传输和模型文本并非合法 JSON,再选择对应修复方式。
症状与常见原因
- 网关返回 HTML 或纯文本错误页
- 流式响应被当作单个 JSON 文档解析
- 响应被截断,或模型输出包含代码围栏与额外说明
如何确认问题
- 记录 HTTP 状态、错误类型与错误码、request ID、响应头、SDK 异常、模型、端点、项目和发生时间。
- 对比最小请求与失败请求,每次只改变一个变量,确认故障发生在客户端、网络、网关还是服务商层。
- 日志中不得保存完整 API Key、Authorization 请求头、用户敏感输入或私密文件内容。
排障步骤
- 在解析前记录状态码、Content-Type、响应长度和已脱敏的原始片段
- 非 2xx 响应先走错误分支,不直接套用成功响应结构
- 流式接口按事件边界逐帧处理,不拼成普通 JSON 盲目解析
- 需要结构化结果时使用服务商支持的结构化输出能力并做 Schema 校验
- 解析失败应返回明确错误路径,不要静默吞掉或用正则强行修补
常见错误做法
- 对不可重放请求或明确的配置错误进行无上限重试。
- 同时更改密钥、模型、代理和请求参数,导致无法判断真正修复项。
- 关闭 TLS 校验、公开原始日志,或把临时缓解误判为已经恢复。
修复后的验证方法
- 用脱敏的最小请求确认状态码、响应结构和延迟恢复正常。
- 恢复少量真实流量,观察错误率、重试次数和业务结果,不立即放大并发。
- 确认没有重复副作用、告警恢复,并保留 request ID 与时间窗口供复盘。
常见问题
删除 Markdown 代码围栏是否足够?
只对确实由围栏包裹的完整 JSON 有效;空响应、截断、流式协议或错误页必须从传输与响应分支修复。