坑1:不要求证据定位,结果看着对但“不可核对”
具体表现是:模型输出字段映射表时非常流畅,你乍一看也觉得都对,但回过头去对照原始截图或文件,就是找不到对应的证据在哪里。
实测数据(字段映射任务):
- 开启证据要求:证据一致性 92%
- 取消证据要求:证据一致性 约88%
怎么解决?
- 强制每条输出都带上
source_type(来源类型)、locator(定位器)和quote(原文引用)。 - 如果模型实在拿不准,就允许它输出
[UNSURE],并让它主动提出“需要补传图片或补充哪部分信息”。
坑2:自由对话式多模态,跑偏率更高
具体表现是:同样的输入,在不同轮次的对话中,结果差异很大;有时候漏掉字段,有时候引用的条目前后不一致。
实测数据对照:
- 状态机式:Success 10/10,证据一致性 91–93%
- 自由对话式:Success 8/10,证据一致性 82–86%
解决办法:用状态机把流程拆开,分步执行。
- S0:意图确认
- S1:视觉识别对齐
- S2:文件证据定位
- S3:最终生成
坑3:一步到位抽取/修复,JSON 合规率掉得很明显
具体表现是:你要求模型输出 JSON 格式的修复建议,它给你的却是“看起来像 JSON 的文本”。字段缺失、类型不对,甚至把示例当成了必须遵守的强规则。
实测对照(长文档+截图异常格式):
- 一步到位:Success 7/10,JSON 合规率 75%
- 两段式:Success 10/10,JSON 合规率 92%
解决办法:采用两段式强制流程。
- 第一段:先列出所有的异常点,并附上对应的证据条目编号。
- 第二段:再根据第一段的结果,生成最终的 JSON schema。
坑4:视觉边缘噪声导致“自信错误”,尤其遮挡
具体表现是:模型在面对遮挡部分时,依然会给出一个非常具体的判断,但事实上那部分内容根本不可读;或者干脆就漏掉了风险点。
实测数据:
- 清晰截图:Success 10/10,字段准确率 94%
- 遮挡(截掉一半):Success 6/10,字段准确率 78%
- 在提示中增加了“可见性要求”后,遮挡场景的成功率从 6/10 提升到 8/10
解决办法:在提示词里明确加上“可见性要求”。
模型仅对可读的符号进行判断;不可读的部分用 [UNSURE] 表示,并主动提出需要补传哪部分图片。
坑5:长文档编号漂移(引用看着合理但错位)
具体表现是:模型输出的规则条目编号看着挺像那么回事,但仔细一核对,会发现它和文档的实际结构对不上。意思是说,编号错位了。
解决办法:
- 采用两段式流程:第一段只列出文档的编号和定位信息。
- 第二段再根据第一段的信息,生成结构化的结果。
- 强制使用证据引用格式,禁止模型自行“推断编号”。
最快排查清单(你可以直接照做)
- 每条输出是否都有
locator + quote?没有就补上。 - 是否把流程拆成了 S0/S1/S2/S3 状态机?没拆就先改。
- 需要严格的 JSON 格式吗?需要就用两段式。
- 视觉输入是否存在遮挡或过曝?如果有,提示词里必须允许模型输出
[UNSURE]。
适用提醒
如果你的任务只是“随口总结一下”,那这些工程约束可能显得有点重;
但如果你要做的是需要审阅、校验、且结果可以追溯的交付,那这些坑,踩过一次就够了——建议直接上状态机方案。
