三单匹配AI核对(免费)
一句话:把采购订单、入库单、发票放在一起核一遍 —— 不需要付款,也不需要注册。
完全免费:不需要付款、不需要注册、不需要配置任何 API Key,直接调用即可。
什么时候用
- 付款前想确认:订单号 / 供应商 / 物料在三张单据上是不是同一个
- 担心数量或金额在订单、入库、发票之间对不上(这是多付/错付的常见来源)
- 想查有没有同一张发票重复入账(重复付款线索)
- 单据模板里还留着
【填写…】、XXX、TBD没替换
这个免费版查什么
| # | 检查项 |
|---|---|
| 1 | 关键字段跨单据一致:采购订单号 / 供应商 / 物料 |
| 2 | 数量 / 单价 / 金额跨单据一致 |
| 3 | 重复发票号线索 |
| 4 | 模板占位符残留 |
金额会做归一化:1,000.00 与 1000.00 视为同一个数,不会因为写法不同就报错。
只出现在一张单据里的字段不会报 —— 无从比对的事情我们不猜。
怎么用
node scripts/run.mjs --sample
node scripts/run.mjs --input my-match.json
node scripts/run.mjs --input my-match.json --json
入参两种写法,任选:
{ "documents": [
{ "type": "采购订单", "text": "采购订单号: PO-1\n供应商: 河南甲物资\n数量: 100\n金额: 1000.00" },
{ "type": "入库单", "text": "采购订单号: PO-1\n供应商: 河南甲物资\n数量: 100\n金额: 1000.00" },
{ "type": "发票", "text": "发票号: INV-1\n采购订单号: PO-1\n数量: 100\n金额: 1000.00" }
] }
或者直接给纯文本,单据之间空一行。
退出码
| 码 | 含义 |
|---|---|
| 0 | 已执行检查 |
| 1 | 没给入参 |
| 3 | 材料不足 —— 此时不给结论(既不说一致,也不说不一致) |
| 4 | 入参文件读不到或无法解析 |
| 9 | 未预期错误 |
这个免费版不包含
以下检查项不在本版本范围内,调用时也不会执行:
- 行内算术(数量 × 单价 = 金额)
- 税额与价税合计自洽(不含税 + 税额 = 价税合计)
- 发票数量 vs 入库数量的容差核对
- 发票金额 vs 订单金额的容差核对
- 订单数量 vs 入库数量的容差核对
- 同一物料的单价跨单据偏离提示
- 日期逻辑(订单 ≤ 入库 ≤ 发票)
- 付款条款与账期字段核对
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 行内算术(数量 × 单价 = 金额)
- 税额与价税合计自洽(不含税 + 税额 = 价税合计)
- 发票数量与入库数量的容差核对
- 发票金额与订单金额的容差核对
- 订单数量与入库数量的容差核对
- 同一物料的单价跨单据偏离提示
- 日期逻辑(订单 ≤ 入库 ≤ 发票)
- 付款条款与账期字段核对
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
- 本工具只做AI比对,不判断这笔付款是否应当发生 —— 那是财务制度与审批流程的事;
- 不做发票真伪查验,不查供应商主体资格;
- 「没报问题」不等于「没有问题」:超出上述四类的检查,本版本不执行;
- 材料不足时不给结论,也不会用默认值编一个「没问题」出来;
输出示例
[P0] 跨单据字段不一致
字段「数量」在各单据上写得不一样:
采购订单「120」 / 入库单「118」
建议:三单匹配要求这些字段一致;先确认以哪一份为准,再统一改正。
