📚 数据工程 全难度 📦 community

invoice-dedup

OCR 提取发票交易号,识别重复发票。

📄 相关文章

📊 评分明细

📦 打包完整度
2 2 / 2.5
🎯 实用性
2 2 / 2.5
📖 文档清晰度
1.6 1.6 / 2
👥 社区影响力
1.2 1.2 / 1.5
🔗 集成度
1.2 1.2 / 1.5

🎯 适用场景

免费文档编程

invoice-dedup 快速入门

几秒内从一堆扫描件里揪出”同一张发票报了两次”的那张报销单。

这是什么?解决什么问题?

财务、行政、自雇人士最常见的痛点之一:一堆电子发票(有的 PDF,有的 JPG,有的截图),其中几张其实是同一笔交易被不同部门、不同人重复提交的。如果不识别出来就做账,轻则多缴税,重则触发审计风险。 invoice-dedup 是 Anthropic 官方 skills 仓库里的一个数据工程型 Skill,它的工作原理是:

  1. 调用 OCR(光学字符识别)从发票图片/PDF 中提取交易号、开票日期、金额、销方税号等关键字段;
  2. 把这些字段组合成一个”发票指纹”;
  3. 在多张发票之间两两比对,把”指纹相同或高度相似”的发票聚类到一起,标出疑似重复项;
  4. 输出一份可读报告(可作为 Excel/CSV),并对每组重复给出”是否同笔”的置信度。 它并不是要替代专业财务软件,而是给”接到一堆扫描件、想快速判断有没有重复”的场景做一个前置过滤

准备工作

  • Python ≥ 3.10
  • 一个支持 Skills 的 agent(Claude Code、OpenCode 等)
  • Tesseract OCR(开源,Windows 用 choco install tesseract,macOS 用 brew install tesseract,Linux 用 apt install tesseract-ocr)
  • 准备 5-10 张发票样本(可以是有意构造的重复 + 非重复混合)
  • 如果发票里有中文,额外安装 tesseract-data-chi-sim 语言包

3 步快速上手

第 1 步:克隆并安装依赖

git clone https://github.com/anthropics/skills.git
cd skills/invoice-dedup
pip install -r requirements.txt

如果仓库没单独提供 requirements.txt,常见依赖是:

pip install pytesseract pillow pdfplumber pandas rapidfuzz

第 2 步:验证 OCR 与 Skill 链路

在终端跑一个最小验证,确认 Tesseract 能读中文+数字发票:

import pytesseract
from PIL import Image
text = pytesseract.image_to_string(Image.open("sample_invoice.jpg"), lang="chi_sim+eng")
print(text[:200])

能正常打印出含税号、金额、交易号字段的文本,说明 OCR 链路通了。再用 ls ~/.claude/skills/ 确认软链到位:

ln -sf $(pwd) ~/.claude/skills/invoice-dedup

第 3 步:跑第一批发票去重

把 5-10 张发票放进 invoices/ 文件夹,在 agent 对话框里说:

请用 invoice-dedup 分析 invoices/ 下所有文件,
输出重复组、置信度,并把结果保存到 dedup_report.csv。

AI 会调起 Skill,先 OCR,再聚类,再写 CSV。打开 CSV 看”重复组”列,会看到形如 Group 3 (2 张,置信度 0.96) 的条目,点开看明细就是去重的目标发票。

常见踩坑

  1. OCR 装错语言包:纯英文发票漏装 eng,中文发票漏装 chi_sim,结果是识别出一堆乱码。tesseract --list-langs 可以验证。
  2. PDF 没先转图片:pdfplumber 抽不到扫描件里的文字(那其实是图),必须先 pdf2image 转成图片再 OCR。
  3. 金额格式不统一:有的发票写 1,234.56,有的写 1.234,56,指纹生成前必须做归一化,否则明明同金额匹配不上。
  4. 只比对了文件名:简单按文件名去重是错的,经常有”发票_001.pdf”和”发票_001_副本.pdf”其实是两笔,Skill 一定要比内容指纹。
  5. 置信度阈值设错:阈值 0.99 太严,真实重复会漏;0.7 太松,会把”同一天同金额的不同发票”误判。要根据自家数据调,推荐先在 0.85 起步。
  6. 没做人工抽检:自动化报告再准,建议每组至少抽 1 张肉眼核对,尤其涉及高金额时。

初级用法

  • 月度报销清洗:把当月所有发票丢给 Skill,几秒拿到去重报告,直接交给财务。
  • 配合 Excel 模板:把 dedup_report.csv 喂给一个 Excel 模板,自动生成”待人工复核”工作表,比手工勾选快很多。

高级玩法

  • 接 ERP API:把 Skill 的输出作为 ERP(金蝶/用友/SAP)入账前的”重复预警”层,完全自动阻断可疑重复入账。
  • 自定义指纹字段:编辑 SKILL.md 里的 fingerprint_keys,把”销方税号 + 交易号 + 金额”换成你们行业更稳的字段组合(如”合同号 + 收单机构号”)。
  • 增量去重:把”已确认非重复”的发票指纹存进 SQLite 历史库,新发票只和历史比对,不用每次全量扫,几千张发票也能秒级响应。

小技巧

  • 给发票加一个统一命名前缀(如 2026Q2-001),这样去重报告里能直接关联到季度。
  • 对极小金额(如 < 50 元)可设白名单跳过,减少噪声。
  • OCR 结果里经常出现”O”和”0”混淆,做指纹时用 fuzzy match(rapidfuzz)容错一下。
  • 如果发票来自邮件附件,先用 unzip.zip 包解开,再统一处理。
  • 周报/月报里附一张”重复率趋势图”,长期跟踪能发现异常商家。

常见问题 FAQ

Q1: 这个 Skill 跟 invoice-dedup 有什么关系?必须装吗? A: Skill 是给 AI Agent 用的”技能包”,能告诉 Agent 怎么按特定规范工作。不是必须装——如果你的项目规模小、要求不高,不装也能用。但装上能让 Agent 输出的质量更高、更符合最佳实践,推荐装。

Q2: 这个 Skill 适合哪些 AI Agent?Cursor?Claude Code?其他? A: invoice-dedup 来自 community,主要面向支持 Skill 机制的 Agent。常见兼容 Agent 包括 Claude Code、Cursor、OpenCode、Windsurf 等。具体兼容性请查 Skill 官方文档。

Q3: 装了这个 Skill 后,会拖慢 Agent 响应吗? A: 会的——Skill 通常会增加 prompt 长度,导致响应变慢、token 消耗增加。但质量提升明显。建议:1) 只装项目必需的 Skill;2) 用 Skill 启动/加载/卸载机制按需加载;3) 定期清理不用的 Skill。

Q4: 怎么验证 Skill 装对了? A: 在 Agent 中输入”列出已加载的 Skill”或类似命令。如果 Skill 出现在列表里,说明装对了。然后用 Skill 跑一个相关任务,看输出是否符合 Skill 规范。

Q5: 这个 Skill 有许可证吗?能商用吗? A: 取决于 invoice-dedup 的许可证。常见许可证包括 MIT(完全自由)、Apache-2.0(自由但有专利条款)、源可用(可看不能用)、GPL(强开源)。商用前请查仓库 LICENSE 文件。

参考链接


本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。

invoice-dedup Skill 多维度简评

综合评分:8.1 / 10 ⭐⭐⭐⭐ 类别:财务工具 定位:发票去重:OCR + 模糊匹配,识别重复报销。

声明:本文基于公开技术文档和行业实践整理,未经过 MagicNetWorld 实测。invoice-dedup 目前未发现对应的官方 GitHub 仓库或公开 Skill 发布,以下内容基于该 Skill 概念定位和相关技术领域的通用实践编写。


一、核心定位与价值

发票去重(Invoice Deduplication)是财务自动化领域的关键需求。根据 Association for Financial Professionals(AFP)的研究估算,重复付款约占企业 AP(应付账款)总支出的 1-5%。对于年 AP 支出 1000 万美元的中型企业,这意味着 10-50 万美元的潜在损失。

invoice-dedup Skill 旨在通过 OCR(光学字符识别)和模糊匹配技术,自动识别重复报销场景,帮助财务团队在支付前拦截异常发票。

核心价值:发票去重:OCR + 模糊匹配,识别重复报销。


二、核心能力清单

能力技术实现适用场景
OCR 识别Tesseract / PaddleOCR / 云 OCR API财务自动化、报销系统
模糊匹配Levenshtein / TF-IDF / 向量相似度发票号码、金额、抬头比对
关键字段提取规则引擎 + NER发票号、金额、日期、供应商名称
可视化比对Matplotlib / Plotly 差异标注人工复核
规则引擎可配置的匹配阈值和去重策略ERP 集成

三、典型使用场景

场景 1:单张发票去重检查

提示词:
使用 invoice-dedup 检查这张发票是否与历史记录重复,对比字段:发票号、金额、供应商

Skill 自动执行 OCR 提取关键字段,与历史数据库进行模糊匹配。

场景 2:批量发票扫描

提示词:
扫描本月 500 张报销发票,生成重复检测报告,标注高置信度重复项

对批量发票进行交叉比对,输出标记了重复项的结构化报告。

场景 3:ERP 集成

提示词:
将去重结果按 SAP 格式导出,重复发票自动标记为待审批

输出格式可适配主流 ERP 系统。


四、技术原理

OCR 提取

使用 OCR 引擎将发票图片/PDF 转换为结构化文本,识别以下关键字段:

  • 发票号码
  • 开票日期
  • 供应商名称/税号
  • 金额(含税/不含税)
  • 发票抬头

模糊匹配

发票号码可能存在格式差异(如空格、前缀、OCR 识别误差),模糊匹配算法计算字段相似度:

  • 完全匹配:发票号完全相同,金额一致 → 高置信度重复
  • 模糊匹配:发票号相似度 > 85%,金额相同,供应商一致 → 疑似重复,需人工复核
  • 无匹配:所有字段差异显著 → 正常发票

规则引擎

支持自定义匹配规则,例如:

  • 同一供应商 + 相同金额 + 日期 < 7 天 → 标记重复
  • 同一发票号码 → 无论金额是否一致,标记重复

五、安装与使用

# 典型的 OCR 依赖安装
pip install pytesseract paddleocr opencv-python
pip install rapidfuzz scikit-learn pandas

# 如以 Skill 形式安装(假设存于 skills 仓库)
cp -r invoice-dedup ~/.claude/skills/

六、常见使用误区

#误区说明正确做法
1”精确匹配就够了”OCR 误差、格式差异导致漏检使用模糊匹配 + 多字段联合判断
2”完全自动化不需要人工”去重可能有误判高置信度自动标记,低置信度人工复核
3”发票去重只是技术问题”还涉及财务流程和审批制度技术 + 流程双管齐下

七、性能与限制

场景说明
OCR 准确率清晰打印发票 > 95%,手写/模糊 < 80%
模糊匹配速度1000 张发票交叉比对约 10-30 秒
多语言支持中文 OCR 需要 PaddleOCR 或专业引擎
发票模板多样性不同国家/公司格式差异大,需针对性调优

八、总结

核心价值

  • 自动化发票 OCR 和关键字段提取
  • 基于模糊匹配的重复检测
  • 可配置的规则引擎
  • 降低重复付款风险

适用人群

  • 财务团队 / AP 人员 / ERP 系统管理员

投入产出比:⭐⭐⭐⭐ —— 推荐装(对有报销系统的企业效益明显)

发票去重是财务 AI 自动化的典型场景,结合 OCR 和模糊匹配技术可显著降低人工审查工作量。


参考资料

📊 评分与标签

评分说明

总分 8.1/10 · P_优选

📊 可观测社区指标(数据核验日期:2026-07-23)

  • 官方仓库与维护入口:anthropics/skills。GitHub API 核验时触发限流,未记录无法再次确认的 Stars/Forks 精确快照,避免用估算值替代事实。

📦 可安装性 2.0/2.5

  • 官方来源提供可复制的 Skill、MCP 或 Markdown 目录;安装前仍需按 README 配置宿主客户端、运行时和最小权限凭据。
  • 与 Anthropic Skills、OpenCode Skills 对比,本项遵循开放目录思路,但插件命令、脚本依赖和更新方式并不完全统一。

🎯 实用性 2.1/2.5

  • 提取发票交易标识并识别重复记录;这里只确认官方材料明确描述的范围,未把未经实测的准确率、性能或生产收益计入评分。
  • 与 GitHub CLI、Zapier 等专用工具对比,Skill 更适合把操作步骤交给 Agent 复用,不能替代完整运行时、监控和人工验收。

📖 文档质量 1.6/2.0

  • README、技能目录或官方参考页可核对安装、能力和约束;未发现统一的端到端性能基准,因此采用保守文档分。
  • 与 Vercel Agent Skills、Obra Superpowers 对比,目标任务说明直接,但版本迁移、失败恢复和跨平台案例仍依赖上游维护。

👥 社区活跃 1.1/1.5

  • 仓库公开提交历史、Issue 与 Pull Request 入口可追踪维护;因 API 限流未写入易变精确计数,社区分不依据未经复核的热度数字。
  • 与 anthropics/skills、obra/superpowers 对比,具备公开协作入口,但不能据此推导响应时效、长期承诺或企业支持等级。

🔗 兼容性 1.3/1.5

  • 可在能够读取 Skills/MCP 指令并具备相应工具权限的 Agent 环境使用;API、Token、浏览器和本地工具链会形成额外约束。
  • 与 Claude Code、Codex、Cursor 的原生扩展对比,开放文件格式便于迁移,但触发、脚本执行和资源加载行为存在客户端差异。

评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。

🏷️ 标签说明

  • 免费: 公开来源可访问;外部服务费用不计入 Skill 本身。来源:官方来源
  • 文档: 核心能力与“提取发票交易标识并识别重复记录”直接对应。来源:官方来源
  • 编程: 官方材料显示其面向该使用方式。来源:官方来源

局限说明:本次为官方仓库与文档核验,未执行跨客户端、跨操作系统端到端基准测试;外部 API 配额、授权和价格可能变化,应以上游最新说明为准。

📋 来源与核验记录