你让 AI 从付款短信里抄出金额、付款人和日期,它交回一份字段齐全、格式漂亮的 JSON,看起来像是任务完成了。但据 Benjamin Nweke 自述,他的交易解析流程仍有约 2% 至 3% 的记录日期不符。回看原短信才发现:这些短信根本没有日期,模型却几乎总填入了执行解析任务当天的日期。
问题出在 Schema——规定字段与类型的数据模板——把 transaction_date 设成了必填日期。结构化输出能保证括号、字段和类型合规,却不能保证内容来自原文。模型无法留空,猜出的日期照样能通过格式检查,直到下游对账才暴露。
更稳妥的做法,是允许日期为 null,明确表示资料没有提供。说白了,提取是抄出原文已有的信息,推断则是补出原文没有的信息;两者都可以有用,但不该由一个“必填”字段悄悄替你做决定。