chenqg618

three-way-match-free

把采购订单、入库单、发票放在一起核一遍,每条结论都带原文行号,不需要付款,也不需要注册。本免费版执行 关键字段跨单据一致(采购订单号 / 供应商 / 物料)、数量 / 单价 / 金额跨单据一致、重复发票号线索、模板占位符残留。触发词包括 三单匹配、应付账款核对、采购订单入库单发票不一致、订单号对不上、供应商名称不一致、重复发票、重复付款。

chenqg618 0 Updated 1mo ago

Resources

2
GitHub

Install

npx skillscat add chenqg618/compliance-skills/three-way-match-free

Install via the SkillsCat registry.

SKILL.md

三单匹配AI核对(免费)

一句话:把采购订单、入库单、发票放在一起核一遍 —— 不需要付款,也不需要注册。

完全免费:不需要付款、不需要注册、不需要配置任何 API Key,直接调用即可。

不想安装也能用:同一个检查有网页版,免注册、免付款 —— https://www.tokendidi.cn/check

什么时候用

  • 付款前想确认:订单号 / 供应商 / 物料在三张单据上是不是同一个
  • 担心数量或金额在订单、入库、发票之间对不上(这是多付/错付的常见来源)
  • 想查有没有同一张发票重复入账(重复付款线索)
  • 单据模板里还留着 【填写…】、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」
建议:三单匹配要求这些字段一致;先确认以哪一份为准,再统一改正。