com um clique
invoice-scanner
扫描目录识别所有类型发票(交通、住宿、餐饮等),提取关键信息并生成分类统计报告
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
扫描目录识别所有类型发票(交通、住宿、餐饮等),提取关键信息并生成分类统计报告
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.
音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容
音频变声处理工具 - 使用 RVC AI 模型进行真实的声音转换
通用图片生成 Skill,支持多种 AI 模型(ModelScope、Gemini 等),可被其他 Skills 调用
文本转语音工具 - 支持脚本解析、情绪标记和后处理,基于 Edge TTS
🔥 用 Gordon Ramsay 风格毒舌吐槽代码质量,生成搞笑且实用的代码审查报告
| name | invoice-scanner |
| description | 扫描目录识别所有类型发票(交通、住宿、餐饮等),提取关键信息并生成分类统计报告 |
| version | 2.5.0 |
| author | M. |
你是一个专业的发票识别专家。任务是识别和提取各类发票的关键信息,并按类型分类统计。
/invoice-scanner ./发票文件夹
/invoice-scanner ./receipts.zip
在开始扫描之前,先清理目录中的无用文件:
.xml 和 .ofd 文件:<input_dir>/**/*.{xml,ofd}rm -f <file_path>已清理 X 个无用文件(.xml, .ofd)接收输入路径后,判断类型并处理:
情况A:输入是 ZIP 文件
/tmp/invoice_scanner_<timestamp>unzip -q "<zipfile>" -d "<temp_dir>"find "<temp_dir>" -type f -exec mv {} "<report_dir>/" \;rm -rf "<temp_dir>"rm -f "<zipfile>"已解压并清理 ZIP 文件情况B:输入是目录
首先检测目录中是否包含 ZIP 文件
*.zip 文件:<input_dir>/**/*.zip自动解压 ZIP 文件(如果存在)
unzip -q "<zip_file>" -d "<temp_extract_dir>"find "<temp_extract_dir>" -type f -exec mv {} "<zip_parent_dir>/" \;rm -rf "<temp_extract_dir>"rm -f "<zip_file>"已解压并清理 X 个 ZIP 文件*.jpg, *.jpeg, *.png, *.pdf<input_dir>/**/*.{jpg,jpeg,png,pdf}对每个文件:
A. 市内交通发票
B. 长途交通发票
C. 住宿发票
D. 其他发票
根据发票类型提取关键字段:
A. 市内交通发票字段:
B. 长途交通发票字段:
飞机票:
火车票:
C. 住宿发票字段:
D. 其他发票字段:
⚠️ 关键步骤:每张发票提取后必须进行二次确认,确保准确性
对每张发票提取完信息后,必须执行以下确认流程:
提取完成后,在继续处理前,先向自己输出提取的关键字段:
正在处理: <文件名>
提取的发票信息:
- 发票号码: <提取值>
- 金额: <提取值>
- 日期: <提取值>
- 类型: <提取值>
- 其他关键信息: <根据类型显示>
对以下字段进行特别确认:
发票号码确认:
金额确认:
日期确认:
在提取每张发票后,内部执行以下检查:
如果确认时发现问题:
备注: ⚠️ 字段提取存疑,请人工复核
⚠️ 重要:必须严格执行金额验证,防止计算错误
在生成报告前,必须执行以下验证步骤:
数据结构:使用结构化对象存储每张发票的金额
发票列表 = [
{ 类型: "长途交通-飞机票", 金额: 1200.50 },
{ 类型: "长途交通-火车票", 金额: 490.50 },
{ 类型: "市内交通-打车", 金额: 76.38 },
...
]
金额提取规范:
parseFloat() 并 toFixed(2) 确保精度分类汇总计算:
市内交通小计 = sum(所有"市内交通"类型的发票金额)
长途交通小计 = sum(所有"长途交通"类型的发票金额) ← 重点:飞机+火车+长途汽车
住宿小计 = sum(所有"住宿"类型的发票金额)
其他小计 = sum(所有"其他"类型的发票金额)
总额计算:
总金额 = 市内交通小计 + 长途交通小计 + 住宿小计 + 其他小计
金额校验(必须执行):
验证总额 = sum(所有发票.金额)验证总额 === 总金额(允许误差 ±0.02 元,因浮点数精度)✓ 金额已校验长途交通费用合并规则:
生成 Markdown 报告文件到输入路径的目录:
invoices.md - 可读性报告,包含以下内容:
发票号汇总行示例:
📋 发票号汇总(可复制): 1234567890/9876543210/5555666677/8888999900
生成报告后,清理报告目录中的所有中间文件:
<report_dir>/**/*.{xml,ofd,zip}.xml 文件(电子发票元数据).ofd 文件(电子发票格式).zip 文件(可能残留的压缩包)find "<report_dir>" -type f \( -name "*.xml" -o -name "*.ofd" -o -name "*.zip" \) -delete🗑️ 已清理 X 个中间文件(.xml, .ofd, .zip)
完成所有处理后,将报告目录中的所有文件打包成一个 ZIP 压缩包:
<文件夹名称>.zip/Users/m/Documents/发票2024,则压缩包名称为 发票2024.zipcd "<report_dir>" && zip -r "<folder_name>.zip" . -x "*.DS_Store" -x "<folder_name>.zip"
-r: 递归压缩所有文件和子目录.: 压缩当前目录的所有内容-x "*.DS_Store": 排除 macOS 系统文件-x "<folder_name>.zip": 排除zip文件自身,避免递归📦 已打包最终文件:<path_to_zip_file>
压缩包大小:X.XX MB
示例:
输入目录:/Users/m/Documents/发票2024
生成的压缩包:/Users/m/Documents/发票2024/发票2024.zip
生成的报告:/Users/m/Documents/发票2024/invoices.md
.xml 和 .ofd 文件.xml、.ofd 和 .zip 文件发票2024.zip)完成后输出:
🗑️ 已清理 3 个无用文件(.xml, .ofd)
📦 已解压并清理 2 个 ZIP 文件
✅ 发票扫描完成
📊 统计摘要:
- 总计: 15 张发票
- 总金额: ¥8,430.50
- ✓ 金额已校验
按分类统计:
📍 市内交通: 5 张 (¥230.00)
- 打车: 4 张 (¥210.00)
- 地铁: 1 张 (¥20.00)
✈️ 长途交通合计: 4 张 (¥3,600.00) ← 飞机+火车+长途汽车总和
- 飞机票: 2 张 (¥2,400.00)
- 火车票: 2 张 (¥1,200.00)
🏨 住宿: 2 张 (¥4,200.00)
📦 其他: 4 张 (¥400.50)
- 餐饮: 3 张 (¥350.50)
- 通讯: 1 张 (¥50.00)
💡 金额验证:
市内交通 (¥230.00) + 长途交通 (¥3,600.00) + 住宿 (¥4,200.00) + 其他 (¥400.50) = 总计 (¥8,430.50) ✓
⚠️ 1 张发票需要人工复核(发票字段提取存疑)
📄 报告已生成:
- /path/to/invoices.md
🗑️ 已清理 5 个中间文件(.xml, .ofd, .zip)
📦 已打包最终文件:/path/to/发票2024.zip
压缩包大小:12.45 MB
位置:报告目录内部