今天本来只想做一件小事:把三家供应商发来的报价单放在一起,选一套配件。打开 PDF 后才发现,每家格式都不一样,有的型号和规格挤在一个单元格里,有的把折扣藏在备注,还有一家干脆是扫描件。靠眼睛来回对,很容易看串行,所以我决定试试 AI 能不能先把它们整理成能核对的表格。
目标定得很窄:只提取供应商、报价日期、币种、含税方式、有效期、付款条件,以及明细里的型号、规格、数量、单价、折扣和交期。先不做自动比价,先得到一张能回到原文逐一核对的表。
先把“不许猜”写进提示词
第一次让 AI 直接把整张表变成 CSV,看起来确实整齐,但我没多久就发现两处问题:一处把型号末尾的字母漏了,另一处把“含税”理解成了默认条件。表越规整,越容易让人忘记核对。
第二次我把要求改得更保守:原文没有的字段留空;看不清的写“待核对”;每个价格必须注明在哪一页;不要替我计算总价;不要把不同单位强行合并。结果没有第一版好看,却好用很多,因为它把不确定的地方露出来了,而不是悄悄抹平。
扫描件和图片表格最费时间
三份报价里,两份能直接复制文字,一份是扫描件。能复制文字的两份,AI 整理得比较顺;扫描件就麻烦,OCR 把 O 和 0、I 和 1 混了两次,还把一个小数点识别成了逗号。最危险的是这些错误看起来都像正常数字,用眼睛扫一遍很难发现。
我最后用了笨办法:把 PDF 和表格并排放在屏幕上,先比行数,再比型号,最后用两条独立规则检查金额。一条是“数量 × 单价 × 折扣 = 行金额”,另一条是把明细金额、税额、含税总额互相验算。只要对不上,就回到原 PDF 找原因。花时间,但比拿错价格去下单便宜。
有些差异不一定是错误
核对时我遇到一笔单价差了几毛,以为 OCR 又错了。后来回头看原文件,才发现一家报的是未税价,另一家报的是含税价,而且币种也不同。这也提醒我,报价单不能只抽“单价”这一列。含税方式、税率、付款条件和有效期,跟价格本身一样重要。
所以表格里我单独加了几列:价格口径、税率、交期和备注。看起来有点重复,但等到真正比较时就清楚多了,不会拿一个未税价去直接对比含税价。
今天得到的结果
三家报价单最后整理成了一张总表。两家格式比较规整的,AI 一次就抽得差不多;扫描件那家还是手动改了五六个字段。整个过程没有达到“丢进 PDF 就自动出结果”的程度,但确实省掉了大量复制粘贴,也把最需要人判断的地方集中了出来。
我也留了原始 PDF、抽出的文字和最终表格三份东西。以后价格有争议,能沿着表格里的页码回到原文,而不是只相信二次整理后的结果。
下一步
下一步想试的是,把这张核对过的表接到 ERPNext 的供应商报价或询价流程里。暂时还不想做全自动导入,先看看字段能不能对得上、人工确认放在哪一步合适。报价单整理这件事,真正难的不是把文字变成表格,而是让人一眼看出哪里还不敢信。