ReceiptGuard Local
将一个票据目录转换为可复核的本地报告。原始图片和 OCR 文本不发送到云端。
首次安装
macOS / Linux:
bash scripts/install.sh
Windows PowerShell:
powershell -ExecutionPolicy Bypass -File scripts/install.ps1
首次安装会下载 Python 依赖和 RapidOCR 模型;模型缓存完成后,票据推理可断网运行。下载过程不上传用户票据。
运行
macOS / Linux:
bash scripts/run.sh "/absolute/path/to/receipts" --output "/absolute/path/to/report" --policy policy.json
Windows:
powershell -ExecutionPolicy Bypass -File scripts/run.ps1 "C:\receipts" --output "C:\receipt-report" --policy policy.json
必须传入用户明确指定的本地文件或目录。不要扫描更大的父目录。
输出合同
运行成功后读取标准输出的 JSON 摘要,并向用户报告:
- 处理票据数量与 OpenVINO 设备。
- 分类去重后的票据数、实付合计和分类金额。
- 发现的超标、缺字段、重复票据号、近似重拍、金额异常和低置信度项。
receiptguard-dashboard.html、receiptguard-report.md、receiptguard-report.csv和receiptguard-report.json的绝对路径。- 同目录存在
receiptguard-report.xlsx时,把 Excel 路径作为主要台账产物返回。不得通过将 CSV 改名为.xlsx伪造 Excel。
审核发现不是运行错误;只有输入无效、OCR 后端不可用或报告写入失败时才返回非零退出码。
审核边界
- 对 OCR 置信度低、金额无法自洽或无法判定实付金额的票据标记「待人工确认」。
- 使用 SHA-256、票据号和 dHash+实付金额进行分层重复检测;不自动删除或移动票据。
- 不宣称票据具有税务/法律效力,不代替财务审批,不发起支付或报销。
- 展示 OCR 证据和规则原因,不将模型推测写成确定事实。
本地推理
默认使用 RapidOCR 的 OpenVINO 引擎执行文本检测、方向分类和中英文识别。报告必须保留 OpenVINO 版本、可用设备和实际后端;不允许静默回退到云端 OCR。
高宽比超过 1.45 的长票据使用上下重叠分块 OCR,合并时去除重叠行。policy.json 控制必填字段、分类限额和票据时限;政策可由用户替换,但不得在报告中隐藏实际使用的政策名。
当前 RapidOCR 3.8.1 的 OpenVINO 后端固定使用 CPU。除非已在 Intel 设备上完成真实验证,否则不得宣称已使用 GPU/NPU 加速。
工作台与 Excel
receiptguard-dashboard.html 是完全本地、数据内嵌的只读工作台,支持状态/类别/关键词筛选、票据原图、结构化明细与复核证据。直接用浏览器打开即可,不需要服务器。
当用户要求 Excel 且宿主提供真实的工作簿生成能力时,从 receiptguard-report.json 生成至少包含「汇总」、「票据台账」、「消费明细」和「规则与检查」的 .xlsx,并放在报告目录。金额和日期必须保留为数值/日期类型,汇总必须使用公式;如宿主没有工作簿生成能力,明确返回 CSV 而不冒充 Excel。
微信扫一扫