返回 Skill 列表
extension
分类: 效率与办公无需 API Key

本地发票台账助手

把发票/收据(图片/PDF)批量识别并整理成31列标准台账Excel:发票代码/号码、买卖双方名称/税号/地址电话/开户行账号、金额三件套、逐行货物明细,自动报销分类并标记疑似重复发票。OCR(RapidOCR·OpenVINO引擎)、税务二维码解码与大模型(Qwen3-1.7B INT4·openvino-genai)全部在本机运行,核心是"确定性优先"抽取管线:二维码 > 标签锚定正则 > 会计恒等式 >LLM,印章盖住标题也能精确定票种。支持全电专票/普票、纸质专票、多页发票合并、出租车票、餐饮小票等,已在Qoder与TRAE双工具实测跑通且数据交叉验证一致。数据不出机、断网可用、零API成本,适用于企业报销、财务台账、审计前置整理。Intel AI PC上自动启用GPU加速,普通CPU亦可运行。

person作者: xiongwenhaohubModelScope

本地发票台账助手 (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.ps1 is the only supported interface — do not call client.py/server.py directly.
  • First call downloads the local model (~1.1GB). If it times out, run scripts\run.ps1 --continue to 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 格式的票据文件。