💼

财务专用发票识别

👤 明天你好 📦 v1.1.0 ⭐ 4.5 ⬇️ 253 下载
💼 行业专业 免费

📖 技能介绍


name: invoice-ledger-skill description: 财务专用发票识别skill,并生成便于对比的发票台账,为后续进项销项统计,税率计算,合同匹配提供可直接使用的台账版本。批量读取本地 PDF、图片、XML 等发票文件,提取票面和商品明细,拆分多票 PDF、合并已确认属于同一发票的连续页面,并将结果追加到用户指定的 Excel 发票采集台账;重复项跳过,异常集中写入"识别提示"。当用户要求识别、整理、汇总、导入或批量处理发票,续写已有发票台账,或处理数电发票、多页 PDF、扫描件、出租车票、定额发票时使用。优先直接解析原始文本型 PDF;仅在输入没有可用文本层时使用本地 OCR。 slug: maple192600-li-invoice-ledger displayName: 财务专用发票识别 version: 1.1.0 summary: 财务专用发票识别 Skill,生成便于对比的发票台账,为进项销项统计、税率计算、合同匹配提供可直接使用的台账版本。 license: MIT


发票识别并追加台账

把用户提供的发票完整处理到 Excel 写入和结果汇报。默认批量处理,复用已经配置的环境和台账。

执行原则

  • 以本 SKILL.md 所在目录为 skill 根目录,所有相对路径和命令都从该目录执行。
  • 优先使用数电发票原始文本型 PDF,不要先转成图片。系统先解析已有文本,只有没有文本或直接识别未通过的页面才会自动回退 OCR。
  • 系统按文件和页面分流,同一目录只需执行一次。文本识别通过的页面不会调用 OCR。
  • 台账只追加新数据并跳过疑似重复。禁止覆盖、清空或替换已有数据,禁止使用 --replace-existing--update-existing
  • 没有证据的字段保持为空或待复核,不猜测发票号码、购销双方、金额、税额和商品明细。
  • 不支持 OFD。要求用户从电子税务局税务数字账户下载 PDF 版式文件。

1. 确定输入和台账

从用户请求中取得单个发票文件或发票文件夹。批量目录先盘点 PDF、PNG、JPG、JPEG、BMP、TIF、TIFF、WebP、XML、TXT 和 Markdown 文件,并单独记录 OFD 及其他不支持的文件。

--input-dir 只处理当前目录,不递归子目录。请求范围包含子目录时,对每个含支持文件的目录分别执行,持续写入同一台账,最后汇总所有运行结果。不得把子目录或不支持的文件静默算作已处理。

读取 config/user_settings.local.yaml 中的 draft_ledger。该文件不存在、保存路径失效或用户明确指定另一份台账时,取得用户提供的文件夹或 .xlsx 路径,并在下一步把它传给安装器创建或记录。不得把 skill 根目录的 发票采集台账.xlsx 当作工作台账,它只用于创建新台账。

2. 准备环境

首次安装或 .venv\Scripts\python.exe 不存在时,准备基础环境并记录台账:

python scripts\install_skill_env.py --ocr none --ledger <文件夹或台账.xlsx>

.venv 已存在且保存的台账路径有效时,不要重复运行安装器或 fp_doctor.py,直接进入写入前检查。只需创建或切换台账时运行:

python scripts\install_skill_env.py --ledger-only --ledger <文件夹或台账.xlsx>

该命令只创建或记录台账,不创建虚拟环境、不安装依赖、不运行环境检查。

预检返回码为 3 时,运行 python scripts\install_skill_env.py --ocr auto --ledger <文件夹或台账.xlsx>;安装器自动选择 GPU 或 CPU 依赖并完成安装后环境检查。安装完成后重新运行预检。Skill 或依赖升级后,以及实际执行出现 Python、依赖、OCR 模型、CUDA 或配置错误时,再运行 fp_doctor.py 定位问题。环境错误未解决时保留真实错误,不继续写入台账。

3. 选择识别配置

普通识别统一使用 config\runtime_ocr_auto.yaml。它只在实际需要时调用 OCR,并自动选择 GPU 或 CPU。runtime.yamlruntime_ocr_cpu.yamlruntime_ocr_gpu.yaml 仅用于明确的调试或设备固定场景。

4. 写入前检查

先运行 --check-only。单个文件使用 --input,文件夹使用 --input-dir,两者只选一个。

.\.venv\Scripts\python.exe scripts\fp_ledger.py <输入参数> --draft-ledger <台账.xlsx> --config <识别配置> --output-dir output --check-only

预检会实际尝试原生文本识别,并输出 direct_filesstructured_filesocr_required_filesocr_fallback_filesunsupported_filesocr_required_pages。它不运行 OCR,也不修改 Excel。返回码为 0 才继续;返回码为 3 表示需要先准备 OCR 环境;返回码为 2 表示参数、台账、配置或输入存在阻断。

7w4.net小葱技能。

5. 执行识别和写入

使用与检查阶段相同的输入、台账和配置,去掉 --check-only

.\.venv\Scripts\python.exe scripts\fp_ledger.py <输入参数> --draft-ledger <台账.xlsx> --config <识别配置> --output-dir output --json-output summary

不要把单张、单个目录成功当作整批完成。读取每次运行的最终 JSON 摘要并汇总,核对:

  • status
  • input_countrecognized_invoices
  • added_rowsskipped_duplicate_rows
  • review_required_unitsunmodeled_unitsfailed_units
  • output_workbook

6. 汇报结果

向用户说明实际处理文件数、识别发票数、新增明细数、疑似重复数、待复核或失败数,以及目标 Excel 的完整路径。

待复核、未支持和未写入原因以 Excel 的“识别提示”工作表为准。只有具体票据失败或需要定位时,才读取 output\units 下对应证据文件。命令失败、结果为 partialuncompleted 时明确说明,不能声称全部完成。

🤖 AI 评测

发票采集台账功能完整,能自动识别多种发票格式并汇总到 Excel,处理速度快。界面操作简单,异常情况有提示。缺点是部分特殊发票识别率偏低,OFD 文件暂不支持,且目前仅支持 Windows 系统。

📊 多维度评分

适应性4.5
规范性4.2
有效性4.5
可靠性4.5
可信度5

📁 包含文件 (116 个)

📄 README.md 5.6 KB
📄 SKILL.md 5.8 KB
📄 config/deductible_vat_rules.yaml 1.4 KB
📄 config/runtime.yaml 461 B
📄 config/runtime_ocr_auto.yaml 254 B
📄 config/runtime_ocr_cpu.yaml 582 B
📄 config/runtime_ocr_gpu.yaml 584 B
📄 config/status_messages.yaml 532 B
📄 config/template_profiles/current.yaml 4.2 KB
📄 config/user_settings.local.yaml 79 B
📄 config/xbrl/atr_issuer.xml 5.6 KB
📄 config/xbrl/efi.xml 3.9 KB
📄 config/xbrl/einv_ord_receiver.xml 5.9 KB
📄 config/xbrl/inv_tlf_receiver.xml 6 KB
📄 config/xbrl/rai_issuer.xml 5.8 KB
📄 pyproject.toml 157 B
📄 requirements-ocr-cpu.txt 54 B
📄 requirements-ocr-gpu.txt 114 B
📄 requirements.txt 33 B
📄 schemas/air-ticket-itinerary.yaml 1.7 KB
📄 schemas/building-service.yaml 331 B
📄 schemas/catalog.yaml 2.7 KB
📄 schemas/freight-transport-service.yaml 496 B
📄 schemas/general-machine-invoice.yaml 1.6 KB
📄 schemas/medical-fiscal-receipt.yaml 1.6 KB
📄 schemas/metro-quota-invoice.yaml 1.1 KB
📄 schemas/motor-vehicle-unified.yaml 1.3 KB
📄 schemas/passenger-transport-service.yaml 775 B
📄 schemas/railway-ticket.yaml 1.3 KB
📄 schemas/real-estate-operating-lease.yaml 1.3 KB
📄 schemas/refined-oil.yaml 299 B
📄 schemas/road-bus-ticket.yaml 1.6 KB
📄 schemas/standard-invoice.yaml 8.2 KB
📄 schemas/tax-payment-certificate.yaml 1.6 KB
📄 schemas/taxi-machine-invoice.yaml 1.3 KB
📄 schemas/toll-invoice.yaml 1.5 KB
📄 schemas/water-passenger-ticket.yaml 1.4 KB
📄 scripts/fp_acceptance.py 4.6 KB
📄 scripts/fp_doctor.py 633 B
📄 scripts/fp_ledger.py 654 B
📄 scripts/install_skill_env.py 7.6 KB
📄 src/invoice_ledger/__init__.py 54 B
📄 src/invoice_ledger/_paths.py 777 B
📄 src/invoice_ledger/cli.py 28.7 KB
📄 src/invoice_ledger/contracts.py 14 KB
📄 src/invoice_ledger/doctor.py 9.6 KB
📄 src/invoice_ledger/errors.py 561 B
📄 src/invoice_ledger/input_profile/__init__.py 0 B
📄 src/invoice_ledger/input_profile/einvoice_xml.py 3.5 KB
📄 src/invoice_ledger/input_profile/embedded_xbrl.py 6.3 KB
📄 src/invoice_ledger/input_profile/file_profile.py 7.1 KB
📄 src/invoice_ledger/input_profile/invoice_units.py 3.1 KB
📄 src/invoice_ledger/input_profile/ocr_adapter.py 13.7 KB
📄 src/invoice_ledger/input_profile/ocr_cache.py 3.9 KB
📄 src/invoice_ledger/input_profile/pdf_context.py 1.4 KB
📄 src/invoice_ledger/input_profile/text_extraction.py 6.2 KB
📄 src/invoice_ledger/input_profile/text_units.py 4.4 KB
📄 src/invoice_ledger/output/__init__.py 0 B
📄 src/invoice_ledger/output/duplicate_rows.py 6.3 KB
📄 src/invoice_ledger/output/evidence.py 4.6 KB
📄 src/invoice_ledger/output/ledger_rows.py 11.5 KB
📄 src/invoice_ledger/output/recognition_notices.py 6.5 KB
📄 src/invoice_ledger/output/template_profile.py 5.4 KB
📄 src/invoice_ledger/output/template_writer.py 22.4 KB
📄 src/invoice_ledger/output/workbook_repair.py 3.6 KB
📄 src/invoice_ledger/parsing/__init__.py 0 B
📄 src/invoice_ledger/parsing/_helper_fields.py 11.8 KB
📄 src/invoice_ledger/parsing/_helper_layout.py 10.3 KB
📄 src/invoice_ledger/parsing/_helper_primitives.py 5.8 KB
📄 src/invoice_ledger/parsing/_helpers.py 2 KB
📄 src/invoice_ledger/parsing/_invoice_fields.py 6.5 KB
📄 src/invoice_ledger/parsing/_line_item_ocr_table.py 17.1 KB
📄 src/invoice_ledger/parsing/_line_item_receipts.py 6.1 KB
📄 src/invoice_ledger/parsing/_line_item_sequence.py 17 KB
📄 src/invoice_ledger/parsing/_line_item_sequence_helpers.py 5.7 KB
📄 src/invoice_ledger/parsing/_line_item_traditional.py 4.2 KB
📄 src/invoice_ledger/parsing/_line_items.py 1 KB
📄 src/invoice_ledger/parsing/_parties.py 17.5 KB
📄 src/invoice_ledger/parsing/_totals.py 6.1 KB
📄 src/invoice_ledger/parsing/_traditional_vat.py 3.4 KB
📄 src/invoice_ledger/parsing/field_candidates.py 15.9 KB
📄 src/invoice_ledger/parsing/field_resolver.py 9.2 KB
📄 src/invoice_ledger/parsing/invoice_identity.py 1.1 KB
📄 src/invoice_ledger/parsing/scheme_extractors/__init__.py 635 B
📄 src/invoice_ledger/parsing/scheme_extractors/air_ticket.py 8.6 KB
📄 src/invoice_ledger/parsing/scheme_extractors/machine_invoice.py 3.1 KB
📄 src/invoice_ledger/parsing/scheme_extractors/medical_receipt.py 2.2 KB
📄 src/invoice_ledger/parsing/scheme_extractors/metro_quota.py 2.1 KB
📄 src/invoice_ledger/parsing/scheme_extractors/motor_vehicle.py 7.8 KB
📄 src/invoice_ledger/parsing/scheme_extractors/railway.py 4 KB
📄 src/invoice_ledger/parsing/scheme_extractors/road_bus.py 3.7 KB
📄 src/invoice_ledger/parsing/scheme_extractors/tax_payment.py 3 KB
📄 src/invoice_ledger/parsing/scheme_extractors/taxi.py 2.5 KB
📄 src/invoice_ledger/parsing/scheme_extractors/water_passenger.py 2.6 KB
📄 src/invoice_ledger/pipeline/__init__.py 38 B
📄 src/invoice_ledger/pipeline/unit_processor.py 22.8 KB
📄 src/invoice_ledger/schema/__init__.py 0 B
📄 src/invoice_ledger/schema/schema_loader.py 2.5 KB
📄 src/invoice_ledger/schema/schema_router.py 6.4 KB
📄 src/invoice_ledger/validation/__init__.py 0 B
📄 src/invoice_ledger/validation/deductible_vat.py 9.1 KB
📄 src/invoice_ledger/validation/record_validator.py 10.8 KB
📄 src/invoice_ledger/validation/review_notes.py 8.6 KB
📄 tests/test_acceptance_manifest.py 1.5 KB
📄 tests/test_building_oil_models.py 3.3 KB
📄 tests/test_common_parser_regressions.py 27.7 KB
📄 tests/test_freight_toll_models.py 5.7 KB
📄 tests/test_install_skill_env.py 1.3 KB
📄 tests/test_ocr_routing.py 13.9 KB
📄 tests/test_property_passenger_models.py 6 KB
📄 tests/test_recognition_notices.py 7.8 KB
📄 tests/test_release_safety.py 9.7 KB
📄 tests/test_schema_inheritance_and_routing.py 7.9 KB
📄 tests/test_toll_plate_dot.py 1.6 KB
📄 tests/test_workbook_repair.py 2.2 KB
📄 发票采集台账.xlsx 8.6 KB