InvoiceGuard · 发票合规管家
通过 AI 实现发票查重、验真、合规报告全流程。
工作流程
用户上传发票
│
├── 图片/截图/拍照
│ → miaoda-studio-cli image-understanding 提取文字
│
├── PDF / OFD / XML
│ → miaoda-studio-cli doc-parse 提取内容
│
▼
解析关键字段(发票号码、日期、金额、购销方)
│
▼
AI 查重引擎
│ • 图像指纹哈希比对
│ • 关键字段一致性校验
▼
官方验真(Pro)
│ • 对接国家税务总局查验平台
│ • 发票状态查询(正常/作废/红冲)
▼
生成合规报告 → 写入飞书文档(Pro)
│
▼
返回结构化结果
功能详解
1. 发票上传与识别
支持格式:图片(JPG/PNG)、PDF、OFD、XML
# 图片发票 → OCR 识别
miaoda-studio-cli image-understanding -i invoice.png
# PDF/OFD/XML 发票 → 文本提取
miaoda-studio-cli doc-parse --file invoice.pdf --output json
关键字段提取:
- 发票类型(增值税专用发票 / 普通发票 / 电子发票 / 火车票 / 机票等)
- 发票代码 + 发票号码
- 开票日期
- 价税合计金额
- 购买方名称 + 纳税人识别号
- 销售方名称 + 纳税人识别号
- 货物或应税劳务名称
2. AI 查重引擎
免费版 + Pro 版均可用
基于三重校验识别重复发票:
- 精确匹配:发票代码 + 号码完全相同 → 直接标记重复
- 字段哈希:金额 + 日期 + 购销方 生成指纹 → 指纹碰撞检测
- 图像相似度:图片结构相似度比对(截图/套打票识别)
# 查重核心逻辑(见 scripts/duplicate_checker.py)
# 返回: {is_duplicate: bool, match_type: str, confidence: float}
3. 官方验真(Pro)
仅 Pro 版可用
对接国家税务总局增值税发票查验平台:
- 实时验证发票真伪
- 查询发票状态:正常 / 作废 / 红冲 / 失控
- 校验开票金额与系统记录是否一致
⚠️ 国税查验接口需企业开发者账号。配置方式见 references/tax-api.md
4. 合规报告(Pro)
仅 Pro 版可用
符合财政部《财会便函〔2023〕18号》要求,生成结构化合规报告。现在支持飞书原生方案:
- 合规报告 → 直接生成可分享评论的飞书云文档
- 发票明细 → 自动存入飞书多维表格,支持筛选分析
报告结构(六节,符合《财会便函〔2023〕18号》格式):
├── 一、基本信息(企业名称、税号、报告时间)
├── 二、发票汇总(总数、金额合计、按类型/月份分布)
├── 三、查重结果(重复发票列表)
├── 四、验真结果(异常状态发票)
├── 五、合规结论(合规总结 + 风险提示)
└── 六、附件清单
标准 Markdown 报告生成
调用 scripts/compliance_report.py 生成 Markdown 格式报告:
python3 scripts/compliance_report.py <summary_json> <records_json> [buyer_name] [buyer_tax_id]
输出:符合《财会便函〔2023〕18号》的完整 Markdown 报告,包含六节结构 + 发票明细表。
飞书原生方案(推荐 Pro 用户使用)
步骤 1:生成飞书文档报告
调用 generate_feishu_compliance_report_markdown() 获取 Lark-flavored Markdown,
然后使用 feishu_create_doc 工具创建可分享可评论的飞书文档:
from scripts.compliance_report import generate_feishu_compliance_report_markdown
markdown = generate_feishu_compliance_report_markdown(
records=invoice_records,
summary=report_summary,
buyer_name="XX有限公司",
buyer_tax_id="91440000XXXXXXXXXX"
)
# 然后调用飞书 API 创建文档
# feishu_create_doc(title="发票合规检查报告-2026年X月", markdown=markdown)
飞书文档特性:
- 使用飞书原生高亮块展示风险提示,视觉更清晰
- 文档生成后自动可分享、可评论、可协作
- 完全符合《财会便函〔2023〕18号》的六节结构要求
步骤 2:发票明细存入飞书多维表格
先创建多维表格和数据表,定义字段,然后批量导入发票数据:
from scripts.compliance_report import create_feishu_bitable_schema, prepare_invoices_for_feishu_bitable
# 1. 创建多维表格 App
# feishu_bitable_app action="create" name="发票合规检查明细表"
# 2. 获取 app_token,创建数据表(包含预设字段)
fields = create_feishu_bitable_schema(app_token)
# feishu_bitable_app_table action="create" app_token="<app_token>" name="发票明细" fields=fields
# 3. 准备发票数据并批量导入
bitable_records = prepare_invoices_for_feishu_bitable(invoice_records)
# feishu_bitable_app_table_record action="batch_create" app_token="<app_token>" table_id="<table_id>" records=bitable_records
多维表格字段: | 字段 | 类型 | 说明 | |------|------|------| | 发票代码 | 文本 | | | 发票号码 | 文本 | | | 开票日期 | 日期 | 毫秒时间戳,支持日期筛选 | | 金额 | 数字 | 支持金额排序和统计 | | 开票方 | 文本 | | | 状态 | 单选 | 正常/重复/可疑/异常,支持筛选 | | 查验状态 | 单选 | 未查验/正常/作废/红冲/失控 |
多维表格优势:
- 支持按状态、日期、金额筛选查询
- 支持生成数据透视表和统计图表
- 团队协作方便,所有发票数据集中管理
5. 批量处理
仅 Pro 版可用(免费版限额 20 张/月)
支持批量上传数百张发票,自动排队处理:
- 批量识别 → 批量查重(支持跨批次)→ 批量验真 → 汇总报告
使用示例
示例 1:单张发票查重
用户:帮我查一下这张发票有没有重复报销
[上传发票图片]
→ 调用 miaoda-studio-cli image-understanding 识别
→ 提取发票关键字段
→ 调用本地查重引擎
→ 返回:发票号码、金额、查重结果
示例 2:发票验真(Pro)
用户:验一下这张发票真假
[上传发票图片]
→ 识别发票 → 调用国税查验 API → 返回真伪状态
示例 3:生成合规报告(Pro)
用户:帮我生成这批发票的合规报告
[上传多张发票]
→ 批量识别 → 批量查重 → 批量验真 → 生成飞书文档报告
示例 4:批量发票处理
用户:批量处理这50张发票
[上传压缩包或批量文件]
→ 解压归档 → 逐张识别 → 并发查重 → 汇总结果
字段提取规则
| 发票类型 | 关键字段 | 提取难度 | |---------|---------|---------| | 增值税专用发票 | 发票代码、号码、金额、税额、购销方 | ★★☆ | | 增值税普通发票 | 发票代码、号码、金额、购销方 | ★★☆ | | 电子发票(PDF/OFD/XML)| 完整结构化字段 | ★☆☆ | | 火车票 | 日期、出发/到达地、金额 | ★☆☆ | | 机票行程单 | 航班、日期、金额、乘客 | ★☆☆ | | 出租车票 | 日期、时间、金额 | ★☆☆ |
常见问题
| 问题 | 解答 |
|------|------|
| 国税查验接口需要什么? | 企业纳税人资格 + 开发者账号,免费配额有限 |
| OFD 格式怎么解析? | miaoda-studio-cli doc-parse --file invoice.ofd |
| 隐私合规怎么保证? | 不存储发票原始数据,处理后即弃 |
| 免费版和 Pro 版怎么区分? | 通过用户选择或上下文判断,核心功能一致 |
| 图片不清晰怎么办? | 提示用户重拍或扫描,确保发票号码和金额清晰可见 |
参考资料
- 发票格式规范:references/invoice-types.md
- 税局验真接口:references/tax-api.md
- 合规报告模板:references/compliance-report.md
- 查重引擎脚本:scripts/duplicate_checker.py
微信扫一扫