做 ShipDoc 过程中,我们早期有一个很朴素的想法:把 OCR 做到足够准,客户的问题就解决了一大半。真正做下来才发现,这个判断只对了一半。

单一单据的 OCR,在 LLM + 结构化输出的加持下,准确率达到 95% 以上并不困难。真正耗人力的不在这里,而在「同一票货物的 5-10 份单据之间,字段是不是一致」。

一个典型的场景:提单上的品名写 Leather Shoes,发票上写 Leather Footwear,装箱单上写 Shoes。单独看每一份都没问题,放在一起报关员就要复核——到底是不是同一票货?

我们的做法是,把每一票业务的所有单据放进一个「事件」,然后在事件范围内做字段归一与跨单据一致性校验。品名走语义相似度,HS 编码走规则表,数量与重量走差值容忍区间,日期走时间线合理性检查。任何一项异常都会在界面上标红,并给出最可能的错误来源。

这套机制带来的价值,比「把 OCR 再优化 1 个百分点」大得多——因为它把操作员真正花时间的「复核环节」变成了「异常时才介入」。