本地发票台账助手 (local-invoice-ocr)
把发票/收据文件(图片或 PDF)批量识别并整理成 31 列标准台账 Excel(含买卖双方四件套与逐行货物明细)。OCR、税务二维码解码与大模型全部在本机运行(OpenVINO),财务数据不出机。
Usage
scripts\run.ps1 是唯一支持的调用接口。
scripts\run.ps1 <发票文件或文件夹> [-o 输出.xlsx] [--json] [--no-excel] [--fast]
Examples:
| Intent | Command |
| --- | --- |
| 整理一个文件夹的发票成报销单 | scripts\run.ps1 "D:\7月发票" |
| 识别单张发票 | scripts\run.ps1 "D:\票据\出租车.jpg" |
| 指定输出文件 | scripts\run.ps1 "D:\7月发票" -o "D:\7月报销单.xlsx" |
| Agent 解析用 JSON 输出 | scripts\run.ps1 "D:\7月发票" --json |
| 快速模式(只要金额汇总, 约快3倍) | scripts\run.ps1 "D:\7月发票" --fast |
| 只识别不生成 Excel | scripts\run.ps1 "D:\票据\发票.pdf" --json --no-excel |
| 继续被打断的首次下载 | scripts\run.ps1 --continue |
| 查看本地服务状态 | scripts\run.ps1 --status |
| 关闭本地服务释放内存 | scripts\run.ps1 --shutdown |
Important:
scripts\run.ps1is the only supported interface — do not callclient.py/server.pydirectly.- First call downloads the local model (~1.1GB). If it times out, run
scripts\run.ps1 --continueto resume — the download continues from where it stopped. - On unsupported hardware the skill prints a platform error and exits with code 1.
- Never falls back to a cloud service; nothing is uploaded anywhere.
Interpreting the reply
普通模式逐行打印识别进度,最后输出汇总:
[1/3] 识别中: 出租车.jpg
✓ 出租车票 | 价税合计 ¥86.00 | 交通
识别完成: 3 张票据 | 合计金额 ¥1,286.00 | 耗时 45 秒
⚠ 发现 2 条疑似重复发票, 已在Excel备注列标记
报销单已生成: D:\7月发票\发票汇总_20260810_103000.xlsx
- Excel 为发票台账格式(31 列): 发票代码/发票号码/发票日期/查验结果/序号/购买方名称/购买方纳税号/购买方地址电话/购买方开户行帐号/销售方名称/销售方纳税号/销售方地址电话/销售方开户行帐号/税前金额/税额/税后金额/查验次数/校验码/备注/货物名称/货物型号/货物单位/货物数量/货物单价/货物金额/货物税额/货物税率/报销类别/票据类型/文件名/页,末行为合计。
- 一张发票多行货物明细时占多行,表头字段只填在首行(合计不重复累加)。
- 「查验结果」恒为「未查验」——本 skill 不联网、不做税务查验,该列仅为台账格式兼容。
- 格式守卫: 电子发票(20位号码)无发票代码;纸质票代码 10/12 位、号码 8 位;校验码 20 位仅普票有。
- 报销类别取值: 餐饮/交通/住宿/办公/通讯/差旅/服务/其他。
- 同一「发票代码+号码」出现多次会在「备注」列标记「疑似重复」。
--json模式输出单个 JSON 对象:{ok, count, total_amount, duplicates, excel, records[], failures[], elapse_seconds}— records 内含每张票据全部字段与 items 明细数组,供 Agent 直接解析。
Failure handling
- 退出码:
0成功 |1一般错误(参数/硬件/初始化失败) |2与本地服务通信失败 |3模型下载中(需--continue)。 - 单个文件识别失败不会中断批处理,最终汇总会列出失败文件。
- 服务初始化失败时会打印错误摘要,完整日志在
~\.openvino\log\。
What this skill does NOT do
- 不校验发票真伪,不做税务四要素查验;金额建议人工复核后再报销。
- 不联网、不上传任何数据;也因此无法补全 OCR 无法看到的信息。
- 不处理 Word/Excel 格式的票据文件。
Scan to join WeChat group