发票夹子 v1.4 - 本地大模型驱动的发票自动识别与报销管理工具。降级链:PyMuPDF文本提取(修复跨行) → Qwen3‑VL视觉模型。新增跨行seller/buyer匹配与日期标准化。功能:8项风控验真 +一键导出Excel + 合并PDF。
纯 Python CLI 工具,OpenClaw / Claude Code / KimiClaw 等任何 Agent 平台均可使用。
简化架构为 2 级(2026-04-03):
text
发票 → 放文件夹
↓
PDF 提取文字(两种引擎可选)
↓ 读不出才走第2级
视觉模型(扫描件才触发)
↓
存入 SQLite 数据库
↓
Agent 直接读数据库回答问题 ← 完全不消耗 API token
级别引擎触发条件特点第1级PyMuPDF可搜索 PDF(默认)毫秒级,无需Java第2级Ollama Qwen3-VL图片/扫描件~6.1GB 内存
大部分发票走第1级,零成本。
发票处理后存在 ~/Documents/发票夹子/invoices.db(SQLite)。
Agent 可以直接用自然语言读数据库,例如:
不需要额外调用任何大模型 API,Agent 用自己的上下文就能直接读。
用户意图执行命令扫描发票python3 {baseDir}/main.py scan列出发票python3 {baseDir}/main.py list查询日期python3 {baseDir}/main.py query --from 2026-03-01 --to 2026-03-31标记不报销python3 {baseDir}/main.py exclude <ID>恢复报销python3 {baseDir}/main.py include <ID>导出报销python3 {baseDir}/main.py export --from 2026-03-01 --to 2026-03-31 --format both批量验真python3 {baseDir}/main.py verify查看问题发票python3 {baseDir}/main.py problems同步黑名单python3 {baseDir}/main.py blacklist-sync
用户说执行的命令"扫描发票" / "整理邮箱"scan"本月发票" / "列出所有"list"XX商家发票"query --seller XX"导出报销"export --from ... --to ... --format both"不要报销#3那张"exclude 3
不想编辑 YAML?运行交互向导,回答几个问题即可:
bash
python3 {baseDir}/setup_config.py
bash
git clone https://github.com/Alan5168/fapiao-clipper.git
cd fapiao-clipper
pip install -r requirements.txt
cp config/config.yaml.template config/config.yaml
exclude 仅标记