
系统接入大模型API后,如果后端还要把回答继续写入数据库或交给下一段程序处理,直接让模型返回一段自然语言通常不够。比较常见的做法是要求返回JSON,但实际运行一段时间后,会发现偶尔多出Markdown代码块、字段缺失,甚至JSON还没结束响应就被截断。
碰到这种情况,不能看到解析失败就直接重新请求。排查时先保存模型原始响应、结束原因和本次请求使用的输出格式,再判断问题发生在哪一层。有时模型确实返回了完整JSON,只是外层还包着其他响应字段;有时则是输出长度达到限制,内容本身就不完整。两种情况如果都按"JSON格式错误"处理,日志很难看出区别。
如果模型接口支持结构化输出或JSON Schema,我更倾向直接约束字段类型和必填项,而不是只在提示词里写"请返回JSON"。后端收到结果后仍然需要做二次校验,例如数组是否为空、状态值是否属于允许范围、关键字段长度是否异常。结构正确不代表业务数据一定可用。
失败重试也要控制条件。网络错误或输出被截断可以再次请求;如果连续返回同一种字段校验错误,更应该检查Schema和提示词是否冲突。直接无限重试,只会把一个配置问题变成接口费用和队列积压问题。
这类AI接口稳定性的关键,不是让模型每次都"听话",而是把原始响应、解析、校验和异常处理拆开。这样后续更换模型或调整提示词时,才能判断变化到底来自模型输出,还是自己的程序处理逻辑。#AI接口 #PHP开发 #JSON解析 #大模型应用