📚 数据工程 全难度 📦 community

invoice-dedup

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

8.1 /10 ★★★★☆
📅 2026-06-15 · 🕒 5 分钟阅读 · 最后更新 2026-06-15 · 来源: community · 分析测评
#invoice#ocr#finance
📄 相关文章

📊 评分明细

功能完备度
8.1 核心功能齐全
🎯 易用性
7.8 安装即用
🔧 可扩展性
8.4 支持定制和 fork
🔗 生态协同
8 可链式调用
🛡️ 稳定性
8.4 内置验证流程

🎯 适用场景

invoiceocrfinance

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 文件。

进阶学习建议

如果想进一步用好 invoice-dedup,建议按以下路径学习:

第 1 周:熟练使用

  • 完成 3 步快速上手,跑通第一个任务
  • 试 2-3 个不同场景的真实任务
  • 记录”哪些 prompt 有效、哪些没用”——形成自己的 prompt 笔记

第 2 周:理解机制

  • 阅读 Skill 的官方文档(README、SKILL.md)
  • 了解 Skill 的”触发关键词”和”输出格式”
  • 学习”如何用更具体的描述触发 Skill”

第 3-4 周:组合使用

  • 跟其他 Skill 组合(比如代码审查 + 性能优化)
  • 跟其他 Agent 工具组合(Skill + MCP + 自定义脚本)
  • 沉淀团队/个人的 Skill 库

长期:贡献社区

  • 把自定义的 Skill 开源到 GitHub
  • 提 PR 改进现有 Skill
  • 写使用心得分享到 CSDN/掘金/知乎

推荐资源:

避免的坑:

  • 不要装太多 Skill(超过 10 个会拖慢 Agent)
  • 不要把 Skill 装在不兼容的 Agent 上
  • 不要直接复制 Skill 默认 prompt——要根据项目调整
  • 定期 review Skill 库的实用性,清理不用的

参考链接


本文基于官方文档和公开资料整理,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 和模糊匹配技术可显著降低人工审查工作量。


参考资料

📦 快速安装

1 Git Clone
git clone https://github.com/anthropics/skills.git
cd skills/invoice-dedup
pip install -r requirements.txt
2 方式 2
pip install pytesseract pillow pdfplumber pandas rapidfuzz
```
在终端跑一个最小验证,确认 Tesseract 能读中文+数字发票:
```python
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/` 确认软链到位:
```bash
ln -sf $(pwd) ~/.claude/skills/invoice-dedup