通过 AI 实现发票查重、验真、合规报告全流程。
text
用户上传发票
│
├── 图片/截图/拍照
│ → miaoda-studio-cli image-understanding 提取文字
│
├── PDF / OFD / XML
│ → miaoda-studio-cli doc-parse 提取内容
│
▼
解析关键字段(发票号码、日期、金额、购销方)
│
▼
AI 查重引擎
│ • 图像指纹哈希比对
│ • 关键字段一致性校验
▼
官方验真(Pro)
│ • 对接国家税务总局查验平台
│ • 发票状态查询(正常/作废/红冲)
▼
生成合规报告 → 写入飞书文档(Pro)
│
▼
返回结构化结果
支持格式:图片(JPG/PNG)、PDF、OFD、XML
bash
# 图片发票 → OCR 识别
miaoda-studio-cli image-understanding -i invoice.png
# PDF/OFD/XML 发票 → 文本提取
miaoda-studio-cli doc-parse --file invoice.pdf --output json
关键字段提取:
免费版 + Pro 版均可用
基于三重校验识别重复发票:
python
# 查重核心逻辑(见 scripts/duplicate_checker.py)
# 返回: {is_duplicate: bool, match_type: str, confidence: float}
仅 Pro 版可用
对接国家税务总局增值税发票查验平台:
⚠️ 国税查验接口需企业开发者账号。配置方式见 references/tax-api.md
仅 Pro 版可用
符合财政部《财会便函〔2023〕18号》要求,生成结构化合规报告。现在支持飞书原生方案:
text
报告结构(六节,符合《财会便函〔2023〕18号》格式):
├── 一、基本信息(企业名称、税号、报告时间)
├── 二、发票汇总(总数、金额合计、按类型/月份分布)
├── 三、查重结果(重复发票列表)
├── 四、验真结果(异常状态发票)
├── 五、合规结论(合规总结 + 风险提示)
└── 六、附件清单
调用 scripts/compliance_report.py 生成 Markdown 格式报告:
bash
python3 scripts/compliance_report.py <summary_json> <records_json> [buyer_name] [buyer_tax_id]
输出:符合《财会便函〔2023〕18号》的完整 Markdown 报告,包含六节结构 + 发票明细表。
步骤 1:生成飞书文档报告
调用 generate_feishu_compliance_report_markdown() 获取 Lark-flavored Markdown,
然后使用 feishu_create_doc 工具创建可分享可评论的飞书文档:
python
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)
飞书文档特性:
步骤 2:发票明细存入飞书多维表格
先创建多维表格和数据表,定义字段,然后批量导入发票数据:
python
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
多维表格字段:
字段类型说明发票代码文本发票号码文本开票日期日期毫秒时间戳,支持日期筛选金额数字支持金额排序和统计开票方文本状态单选正常/重复/可疑/异常,支持筛选查验状态单选未查验/正常/作废/红冲/失控
多维表格优势:
仅 Pro 版可用(免费版限额 20 张/月)
支持批量上传数百张发票,自动排队处理:
text
用户:帮我查一下这张发票有没有重复报销
[上传发票图片]
→ 调用 miaoda-studio-cli image-understanding 识别
→ 提取发票关键字段
→ 调用本地查重引擎
→ 返回:发票号码、金额、查重结果
text
用户:验一下这张发票真假
[上传发票图片]
→ 识别发票 → 调用国税查验 API → 返回真伪状态
text
用户:帮我生成这批发票的合规报告
[上传多张发票]
→ 批量识别 → 批量查重 → 批量验真 → 生成飞书文档报告
text
用户:批量处理这50张发票
[上传压缩包或批量文件]
→ 解压归档 → 逐张识别 → 并发查重 → 汇总结果
发票类型关键字段提取难度增值税专用发票发票代码、号码、金额、税额、购销方★★☆增值税普通发票发票代码、号码、金额、购销方★★☆电子发票(PDF/OFD/XML)完整结构化字段★☆☆火车票日期、出发/到达地、金额★☆☆机票行程单航班、日期、金额、乘客★☆☆出租车票日期、时间、金额★☆☆
问题解答国税查验接口需要什么?企业纳税人资格 + 开发者账号,免费配额有限OFD 格式怎么解析?miaoda-studio-cli doc-parse --file invoice.ofd隐私合规怎么保证?不存储发票原始数据,处理后即弃免费版和 Pro 版怎么区分?通过用户选择或上下文判断,核心功能一致图片不清晰怎么办?提示用户重拍或扫描,确保发票号码和金额清晰可见