{"skill":{"slug":"ocr-invoice-xiangyun","displayName":"发票识别-发票查验-发票OCR（翔云开放平台）","summary":"翔云发票识别与查验 Skill。当用户请求以下操作时触发： - 发票识别、发票 OCR、识别发票 - 发票查验、发票验真、发票核验、核查发票真伪 - 扫描发票、读取发票信息、提取发票数据 - 增值税发票识别、电子发票识别、数电票识别 - 发票导出、发票台账、发票入账表、发票勾选抵扣 - 旅客运输抵扣表、货物明细表...","description":"---\r\nname: xiangyun-invoice-ocr\r\nversion: 1.0.1\r\ndescription: |\r\n  翔云发票识别与查验 Skill。当用户请求以下操作时触发：\r\n  - 发票识别、发票 OCR、识别发票\r\n  - 发票查验、发票验真、发票核验、核查发票真伪\r\n  - 扫描发票、读取发票信息、提取发票数据\r\n  - 增值税发票识别、电子发票识别、数电票识别\r\n  - 发票导出、发票台账、发票入账表、发票勾选抵扣\r\n  - 旅客运输抵扣表、货物明细表\r\n  - 批量发票处理、发票文件夹识别\r\n  - netocr 发票、翔云发票\r\nauthor: sinosecu\r\ntags:\r\n  - OCR\r\n  - invoice\r\n  - 发票\r\n  - 税务\r\n---\r\n\r\n# xiangyun-invoice-ocr — 翔云发票识别与查验 Skill\r\n\r\n本 Skill 调用翔云平台 API，实现发票图片/PDF **识别 → 查验**全流程。\r\n导出功能仅在用户**明确提出**时才执行。\r\n\r\n---\r\n\r\n## 能力概览\r\n\r\n| 功能 | 说明 |\r\n|:---|:---|\r\n| **发票识别** | 支持全票种（增值税专票/普票/数电票/电子票等），JPG/PNG/PDF/OFD |\r\n| **发票查验** | 识别后自动提取查验入参，联网核验真伪，返回完整票面信息 |\r\n| **Excel 导出** | 5 种标准模版按发票类型自动匹配（仅用户明确要求时） |\r\n| **批量处理** | 支持单张和文件夹批量模式，批量前验证 key/secret |\r\n\r\n---\r\n\r\n## 凭据配置\r\n\r\n首次使用必须配置凭据。凭据存储于本 Skill 目录下的 `config.json`。\r\n\r\n**获取方式**：登录 [netocr.com](https://netocr.com) → 个人中心 → 查看 key / secret\r\n\r\n**配置文件格式**（`config.json`）：\r\n```json\r\n{\r\n  \"key\": \"你的 ocrKey\",\r\n  \"secret\": \"你的 ocrSecret\"\r\n}\r\n```\r\n\r\n---\r\n\r\n## 脚本使用\r\n\r\n### 识别单张发票（仅识别）\r\n```bash\r\npython scripts/invoice.py --image <发票路径>\r\n```\r\n\r\n### 识别 + 查验（默认行为）\r\n```bash\r\npython scripts/invoice.py --image <发票路径> --verify\r\n```\r\n\r\n### 批量识别 + 查验（默认行为，批量前自动验证 key/secret）\r\n```bash\r\npython scripts/invoice.py --dir <目录路径> --verify\r\n```\r\n\r\n### 交互选择导出Excel模版（仅用户明确要求时才加 --export，并鼠标点选）\r\n```bash\r\npython scripts/invoice.py --image <发票路径> --verify --export --select-template\r\npython scripts/invoice.py --dir <目录路径> --verify --export --select-template\r\n```\r\n脚本检测到 `--select-template` 时输出结构化标记并退出，由 Agent 调用 `ask_followup_question` 弹出多选窗口，用户点选后 Agent 将结果通过 `--template` 重新调用脚本。\r\n\r\n### 指定导出模版（仅配合 --export 使用）\r\n```bash\r\n# 单选\r\npython scripts/invoice.py --image <发票路径> --verify --export --template ledger\r\n# 多选（逗号分隔）\r\npython scripts/invoice.py --dir <目录> --verify --export --template goods,booking\r\n```\r\n\r\n模版名称及说明：\r\n\r\n| 编号 | 参数值 | 说明 |\r\n|:---:|:---|:---|\r\n| 1 | `deduction` | 增值税发票勾选抵扣表（抵扣进项税额） |\r\n| 2 | `transport` | 国内旅客运输服务抵扣表（航空/铁路/客车/旅客运输服务/通行费） |\r\n| 3 | `goods` | 增值税发票货物明细表（商品明细记录） |\r\n| 4 | `ledger` | 增值税发票台账表（最全字段，覆盖广） |\r\n| 5 | `booking` | 发票入账表（财务记账用） |\r\n\r\n> **严格票种过滤**：每个模板只导出其适用票种的数据，票种不匹配时自动跳过并提示 `[SKIP] {模版} 不适用于票种 {类型}，跳过`。\r\n> **空文件生成**：批量模式下，即使用户选择的模板没有任何匹配发票，也会生成空表头文件（仅标题+列头，无数据行）。\r\n>\r\n> **Agent 使用说明**：当用户需要导出但未指定 `--template` 时，Agent 应主动调用 `ask_followup_question`（multiSelect=true）展示 5 个模板选项供用户点选，再将结果通过 `--template` 参数传给脚本。\r\n\r\n---\r\n\r\n## 发票类型映射\r\n\r\n本 Skill 支持 **46 种**发票类型的识别，区分**可查验**与**仅识别**两大类。\r\n\r\n### 可查验（识别后可联网核验真伪）\r\n\r\n查验入参 `totalAmount` 按类型分两类取值：\r\n\r\n| 票种名称 | 票种代码 | totalAmount 取值 |\r\n|:---|:---:|:---|\r\n| 增值税专用发票 | 01 | `totalAmount`（不含税） |\r\n| 机动车销售统一发票 | 03 | `totalAmount`（不含税） |\r\n| 增值税普通发票 | 04 | `totalAmount`（不含税） |\r\n| 增值税专用发票(电子) | 08 | `totalAmount`（不含税） |\r\n| 电子发票(增值税专用发票) | 09 | `amountTax`（价税合计） |\r\n| 增值税电子普通发票 | 10 | `totalAmount`（不含税） |\r\n| 增值税普通发票(卷票) | 11 | `totalAmount`（不含税） |\r\n| 通行费增值税电子普通发票 | 14 | `totalAmount`（不含税） |\r\n| 二手车销售统一发票 | 15 | `totalAmount`（不含税） |\r\n| 电子发票(航空运输电子客票行程单) | 61 | `amountTax`（价税合计） |\r\n| 电子发票(铁路电子客票) | 62 | `amountTax`（价税合计） |\r\n| 电子发票(机动车销售统一发票) | 63 | `totalAmount`（不含税） |\r\n| 电子发票(二手车销售统一发票) | 64 | `totalAmount`（不含税） |\r\n| 电子发票（普通发票）通行费 | 72 | `amountTax`（价税合计） |\r\n| 电子发票(普通发票) | 83 | `amountTax`（价税合计） |\r\n| 数电纸质发票(增值税专用发票) | 91 | `totalAmount`（不含税） |\r\n| 数电纸票发票(普通发票) | 92 | `totalAmount`（不含税） |\r\n| 数电纸质发票(机动车销售统一发票) | 93 | `totalAmount`（不含税） |\r\n| 数电纸票发票(二手车销售统一发票) | 94 | `totalAmount`（不含税） |\r\n\r\n### 仅识别（不支持查验）\r\n\r\n| 票种名称 | 票种代码 |\r\n|:---|:---:|\r\n| 火车票 | 20 |\r\n| 区块链发票 | 21 |\r\n| 船票 | 22 |\r\n| 定额发票 | 23 |\r\n| 机打发票 | 24 |\r\n| 出租车发票 | 25 |\r\n| 客运汽车 | 26 |\r\n| 航空运输电子客票行程单 | 27 |\r\n| 过路费 | 28 |\r\n| 打车行程单 | 31 |\r\n| 货物清单 | 33 |\r\n| 财政电子票据 | 34 |\r\n| 海关缴款书 | 35 |\r\n| 通用电子发票 | 36 |\r\n| 完税证明 | 37 |\r\n| 医疗票据 | 38 |\r\n| 退票费报销凭证 | 39 |\r\n| 非税收入一般缴款书(电子) | 40 |\r\n| 车辆通行费通用(电子)发票 | 41 |\r\n| 银行回单 | 42 |\r\n\r\n---\r\n\r\n## 5 种 Excel 模版及适用票种\r\n\r\n| 模版 | 参数值 | 适用票种代码 |\r\n|:---|:---:|:---|\r\n| 增值税发票勾选抵扣表 | `deduction` | 01,03,08,09,14,91,93,61,62,72 |\r\n| 国内旅客运输服务抵扣表 | `transport` | 10,14,20,22,26,27,61,62,83,92,72 |\r\n| 增值税发票货物明细表 | `goods` | 01,03,04,08,09,10,11,14,15,21,63,64,83,91,92,72 |\r\n| 增值税发票台账表 | `ledger` | 01,03,04,08,09,10,11,14,15,21,61,62,63,64,83,91,92,72 |\r\n| 发票入账表 | `booking` | 01,03,04,08,09,10,15,61,62,63,64,83,91,92,14,72 |\r\n\r\n---\r\n\r\n## Agent 执行规范\r\n\r\n### 默认行为（识别 + 查验）\r\n当用户说\"识别\"、\"OCR\"、\"扫描发票\"等意图时：\r\n- 单张：`--image <路径> --verify`\r\n- 目录：`--dir <目录> --verify`\r\n- **不加 --export**\r\n\r\n### 仅识别（不查验）\r\n当用户明确说\"仅识别\"、\"不查验\"时：\r\n- 去掉 `--verify` 参数\r\n\r\n### 导出 Excel\r\n当用户明确提到\"导出\"、\"台账\"、\"抵扣表\"、\"明细表\"等时：\r\n- 在识别查验基础上加上 `--export`\r\n- 配合 `--template` 指定模板（可多选，逗号分隔）\r\n\r\n### 批量前验证\r\n批量处理（`--dir`）时会自动先用空请求验证 key/secret 是否可用，若认证失败会提前报错并提示。\r\n\r\n---\r\n\r\n## 执行逻辑\r\n\r\n```\r\n用户输入（图片/目录）\r\n  │\r\n  ├─ 检查 config.json → 若无 key/secret，要求用户配置后退出\r\n  │\r\n  ├─ 发票识别（recogInvoiveBase64.do，typeId=20090）\r\n  │    └─ 解析返回：invoiceCode, invoiceNumber, billingDate,\r\n  │                  totalAmount, checkCode, salesTaxNo 等\r\n  │\r\n  ├─ [--verify] 发票查验（verInvoice.do，typeId=3007）\r\n  │    └─ 用识别结果自动填充查验入参\r\n  │    └─ 返回完整票面 + 真伪状态\r\n  │\r\n  └─ [--export] 导出 Excel（仅用户明确要求）\r\n       └─ 按 invoiceType 匹配模版\r\n       └─ 写入对应字段，保存到 <原文件名>_<模版名>.xlsx\r\n```\r\n\r\n---\r\n\r\n## API 参考\r\n\r\n- 发票识别：`https://netocr.com/api/v2/recogInvoiveBase64.do`（typeId=20090）\r\n- 发票查验：`https://netocr.com/verapi/v2/verInvoice.do`（typeId=3007）\r\n\r\n---\r\n\r\n## 认证错误检测\r\n\r\n识别和查验接口返回时，会自动检测 key/secret 错误：\r\n- 检测关键词：key、secret、密钥、认证、auth、unauthorized、401 等\r\n- 检测到后打印友好提示，引导用户检查凭据或前往 netocr.com 重新获取\r\n\r\n---\r\n\r\n## ⚠️ 安全说明\r\n\r\n- 用户图片及 API 凭据通过 HTTPS 发送至翔云（netocr.com）进行处理\r\n- 凭据仅存储于本地 `config.json`，不上传至任何其他平台\r\n","topics":["Invoice","OCR","发票","税务","批量"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":338,"installsAllTime":12,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1778207864001,"updatedAt":1778492876503},"latestVersion":{"version":"1.0.0","createdAt":1778207864001,"changelog":"- Initial public release of xiangyun-invoice-ocr skill providing OCR and verification for Chinese invoices.\n- Supports full invoice processing flow: recognition, verification (for 46 invoice types), and Excel export in 5 standard templates.\n- Allows single and batch (directory) processing of images/PDFs, with automatic credential verification in batch mode.\n- Export templates are auto-matched by invoice type; multi-template export supported; empty result tables generated as needed.\n- Step-by-step, user-driven export options: explicit user intent required to export and select template(s).\n- Includes built-in error handling for API credential issues and provides user guidance for credential setup and troubleshooting.","license":"MIT-0"},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"liudengkui","userId":"s1741bfyzp3b0en85c71e500e584v20a","displayName":"liudengkui","image":"https://avatars.githubusercontent.com/u/19543709?v=4"},"moderation":null}