模型输出校验通过,报表字段仍悄然失真
作者记录了将约600份文档转成日报的实践:同一提示产生两种JSON结构,校验器均放行,最终报表虽正常生成,字段含义却已偏移。文章围绕免费模型服务的不稳定性,复盘处理流程失效及校验改进思路。
原文暂未完整获取,基于公开信息的快读
作者把约 600 份 Markdown 文档交给模型,提取字段后生成晨间日报。流程正常退出,表格也成功渲染,但严重程度一列已经混入不同分级体系,校验器却全部放行。这份实践记录暴露了一个容易被忽略的问题:JSON 能解析、字段类型正确,仍然可能产出误导读者的报表。
目前能确认什么
每份文档需要返回 category、severity、needs_human、summary 四个字段,再逐行写入 JSONL、渲染成表格。作者最初只检查字段是否存在、类型是否匹配。于是,severity 中的 high、P1、带尾部空格的 HIGH 都能通过,因为它们都是字符串。
迁到 MonkeyCode 免费服务器并使用其免费模型访问后,600 份响应中有 19 份解析失败。作者增加一次额外调用的修复机会,消除了这些解析失败,却没有拦住分级值混杂。行数检查同样通过。
解析成功和类型正确,都不能证明字段符合业务约定。
作者随后加入结构指纹、枚举值域约束,并要求偏离约定时以非零退出码结束任务。结构指纹记录字段路径与类型,用于发现结构变化;枚举约束则限定字段允许取哪些值。文章披露,它属于 MonkeyCode 的产品推广内容。
我的判断
做模型抽取、工单分类或自动日报时,应先把 severity 的合法取值写进校验规则。报表统计依赖固定分级,未知值就应触发失败或进入待处理队列,不能直接混入统计。格式修复之后,也必须重新校验这些约束。
但枚举合法仍不代表分类准确:模型把低风险内容标成 high,照样可能通过。业务含义是否正确,还需要对照输入抽查。
现有节选没有完整展示标题所说的两种 JSON 结构,也没有给出改进后的完整验证结果。不能据此认定免费服务导致了这次偏移,更不能把结构指纹当成语义正确性的保证。