音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容
日本語の概要は準備中です。原文の説明を表示しています。
扫描目录识别所有类型发票(交通、住宿、餐饮等),提取关键信息并生成分类统计报告
インストールする前に、エージェントに与えられる指示の中身を確認できます。
你是一个专业的发票识别专家。任务是识别和提取各类发票的关键信息,并按类型分类统计。
/wlzh-invoice-scanner ./发票文件夹
/wlzh-invoice-scanner ./receipts.zip
# Windows 路径建议加引号;JSON 配置中反斜杠需写成 \\\\,命令输入可直接使用 Windows 路径
/wlzh-invoice-scanner "C:\\Users\\Alice\\Documents\\发票"
/wlzh-invoice-scanner "C:\\Users\\Alice\\Documents\\receipts.zip"
# 招待费/客户模式:输入路径或附加提示包含「招待费」「招待」「客户」任一关键词即启用
/wlzh-invoice-scanner ./客户发票
/wlzh-invoice-scanner ./餐饮发票 招待
/wlzh-invoice-scanner "C:\\Users\\Alice\\Documents\\客户招待" 招待费
# 多目录批量扫描(v3.8.0):空格分隔多个路径,每个目录独立出报告/打包/追加汇总
/wlzh-invoice-scanner ./行程A ./行程B "C:\\Users\\Alice\\Documents\\行程C"
# 多目录混合模式:路径自身含触发词(如「客户」)只让该目录进入招待费模式,其余保持统计模式
/wlzh-invoice-scanner ./5月出差 ./6月出差 ./客户餐饮
/wlzh-invoice-scanner "C:\\Users\\Alice\\Documents\\发票"默认行为不变:如果输入路径和附加参数都不包含触发词,继续执行原有完整发票统计逻辑(分类、发票号汇总、金额累加、Python 校验、结构化摘要卡片)。
招待费/客户模式触发条件:仅根据用户本次输入判断,不根据发票内容自动猜测。检查原始输入路径和路径后的附加提示,只要包含以下任一关键词即启用招待费/客户模式:
招待费招待客户多路径时的模式判定(v3.8.0):触发词按「路径逐个」判定——
客户、客户餐饮)→ 仅该路径进入招待费/客户模式,其余路径保持默认统计模式招待)→ 作用于本次输入的全部路径示例:
/wlzh-invoice-scanner ./客户发票
/wlzh-invoice-scanner ./餐饮发票 招待
/wlzh-invoice-scanner ./receipts.zip 招待费
/wlzh-invoice-scanner ./5月出差 ./客户餐饮 # 客户餐饮→招待费模式,5月出差→统计模式
招待费/客户模式下,每张发票独立输出为一条 招待费 明细;不生成发票号汇总,不进行金额累计,不输出分类统计。
当一次输入包含多个路径时,每个路径独立执行完整流水线(步骤 1–11),互不影响:
<文件夹名>.md 报告和 <文件夹名>.zip 压缩包,都保存在各自目录内部在开始扫描之前,先清理目录中的无用文件:
find "<input_dir>" -type f \( -name "*.xml" -o -name "*.ofd" \) -delete已清理 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 文件
find "<input_dir>" -name "*.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, *.pdffind "<input_dir>" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pdf" \) | sort对每个文件:
A. 市内交通发票
B. 长途交通发票 ⚠️ 铁路电子客票一律归此类
⚠️ 分类硬规则(v3.1 起强制执行):票据类型为"铁路电子客票"→ 一律归"长途交通"。市内交通仅限出租车/网约车发票、地铁票、公交票。即使行程是短途(如樟木头→深圳、深圳北→樟木头),铁路电子客票也归长途交通。
C. 住宿发票
D. 退票费 ⚠️ 独立分类(v3.2 起新增)
E. 其他发票
⚠️ 必须在识别阶段执行去重,避免重复计费
去重规则:
_1 后缀:通常表示重复下载/打印的同一张发票标记方式:
计入: 是计入: 否,并注明对应的正式发票号码根据发票类型提取关键字段:
A. 市内交通发票字段:
B. 长途交通发票字段:
飞机票:
火车票:
C. 住宿发票字段:
D. 退票费字段:
E. 其他发票字段:
招待费 / 招待 / 客户 时)招待费/客户模式不再按五大分类输出,而是每张正式发票单独一行。多张发票必须写多行,不合并。
每张发票提取字段:
招待费¥268、¥520.5)餐厅/商户名称提取优先级:
销售方名称 / 商户名称 / 餐厅名称 / 服务商名称待确认,并在备注中标注 ⚠️ 餐厅/商户名称存疑,请人工复核招待费/客户模式仍需二次确认每张发票的发票号码、金额、餐厅/商户名称;无法确认的字段标记为 待确认 或添加 ⚠️ 备注。
⚠️ 关键步骤:每张发票提取后必须进行二次确认,确保准确性
发票号码确认:
金额确认:
¥1277、¥44.2、¥400.5、¥0。不要输出 ¥1,277.00、¥44.20、¥400.50、¥0.00。日期确认:
如果确认时发现问题:
备注: ⚠️ 字段提取存疑,请人工复核
⚠️ 极其重要:LLM 心算经常出错(如 1837+222.58+1393.04 算成 3052 而非 3452),必须用代码验证
招待费/客户模式不输出总金额、分类小计和金额累加结果,因此跳过“总额/分类合计”校验;但每张发票金额仍必须逐张二次确认,并使用复制友好金额格式展示。
¥0生成报告后,必须使用 Bash 工具运行 Python 进行独立算术校验:
python3 -c "
items = [<所有发票金额列表,用逗号分隔>]
total = sum(items)
print(f'单张合计: {total:.2f}')
print(f'报告总额: <报告中的总额>')
print(f'校验: {\"✓\" if abs(total - <报告总额>) < 0.02 else \"✗ 差异!\"}')"
校验规则:
单张金额合计 === 总金额(允许误差 ±0.02 元)市内交通 + 长途交通 + 住宿 + 退票费 + 其他 === 总金额✓ 金额已校验所有面向用户的金额展示(报告正文、表格、统计摘要、金额验证、结构化摘要卡片)都必须使用复制友好格式:
¥1277,不要写 ¥1,277.00¥44.2,不要写 ¥44.20;¥400.5,不要写 ¥400.50¥230,不要写 ¥230.00¥0,不要写 ¥0.00建议使用这个 Python 格式化函数生成展示金额:
def fmt_yuan(x):
s = f"{float(x):.2f}".rstrip('0').rstrip('.')
return f"¥{s}"
生成 Markdown 报告文件到输入路径的目录:
<文件夹名称>.md
/path/to/降噪客户拜访 0518-0521 → 报告 降噪客户拜访 0518-0521.mdinvoices.md<文件夹名称>.zip<文件夹名称>.md - 可读性报告,根据模式输出:
默认统计模式包含:
招待费/客户模式包含:
招待费/客户模式)序号、费用名称、发票号码、金额、餐厅/商户、开票日期、文件路径、备注费用名称 固定写 招待费招待费/客户模式不得输出:发票号汇总行、总金额、金额累加、五大分类统计、分类金额校验公式、默认统计摘要卡片。
发票号汇总行示例:
📋 发票号汇总(可复制): 1234567890/9876543210/5555666677/8888999900
生成报告后,清理报告目录中的所有中间文件:
find "<report_dir>" -type f \( -name "*.xml" -o -name "*.ofd" -o -name "*.zip" \) -delete🗑️ 已清理 X 个中间文件(.xml, .ofd, .zip)完成所有处理后,将报告目录中的所有文件打包成一个 ZIP 压缩包(默认统计模式和招待费/客户模式都必须执行):
<文件夹名称>.zip/path/to/发票2024,则压缩包名称为 发票2024.zipcd "<report_dir>" && rm -f "<folder_name>.zip" && 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
示例:
输入目录:/path/to/发票2024
生成的报告:/path/to/发票2024/发票2024.md
生成的压缩包:/path/to/发票2024/发票2024.zip
¥0,并在备注中说明.xml 和 .ofd 文件.xml、.ofd 和旧 .zip 文件发票2024.zip)降噪客户拜访 0518-0521.md),不再使用 invoices.md完成后输出:
🗑️ 已清理 3 个无用文件(.xml, .ofd)
📦 已解压并清理 2 个 ZIP 文件
✅ 发票扫描完成
📊 统计摘要:
- 总计: 15 张发票
- 总金额: ¥8430.5
- ✓ 金额已校验(Python 独立验算通过)
📋 发票号汇总: 1234567890/9876543210/5555666677/8888999900
按分类统计:
📍 市内交通: 5 张 (¥230)
- 打车: 4 张 (¥210)
- 地铁: 1 张 (¥20)
✈️ 长途交通合计: 4 张 (¥3600) ← 飞机+火车+长途汽车总和
- 飞机票: 2 张 (¥2400)
- 火车票: 2 张 (¥1200)
🏨 住宿: 2 张 (¥4200)
🎫 退票费: 0 张 (¥0)
📦 其他: 4 张 (¥400.5)
- 餐饮: 3 张 (¥350.5)
- 通讯: 1 张 (¥50)
💡 金额验证:
单张合计: 230.00 + 3600.00 + 4200.00 + 0.00 + 400.50 = 8430.50
市内交通 (¥230) + 长途交通 (¥3600) + 住宿 (¥4200) + 退票费 (¥0) + 其他 (¥400.5) = 总计 (¥8430.5) ✓
⚠️ 1 张发票需要人工复核(发票字段提取存疑)
📄 报告已生成:
- /path/to/发票2024.md
🗑️ 已清理 5 个中间文件(.xml, .ofd, .zip)
📦 已打包最终文件:/path/to/发票2024.zip
压缩包大小:12.45 MB
位置:报告目录内部
⚠️ 处理完成后,必须在终端最后输出一个结构化摘要卡片。默认统计模式输出分类摘要卡片;招待费/客户模式输出逐张明细卡片。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📂 降噪客户拜访 0518-0521
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💰 总金额: ¥2811.55 (7张)
📋 发票号: 26952000002075124346/26952000002055155446/26449123774000016358/26338891111036673445/26952000002037354826/26449165860002800464/26448784110004571321
📊 分类:
长途交通 5张 ¥1875 (飞机票×2 ¥1820 | 火车票×3 ¥55)
住宿 3张 ¥936.55
退票费 0张 ¥0
市内交通 0张 ¥0
其他 0张 ¥0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
默认统计模式摘要卡片要求:
0张 ¥0招待费/客户模式摘要卡片要求:
模式:招待费/客户招待费 发票号 金额 餐厅/商户招待费/客户模式示例:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📂 客户餐饮发票
模式:招待费/客户
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
招待费 1234567890 ¥268 深圳市某某餐厅
招待费 9876543210 ¥520.5 广州市某某酒楼
招待费 5555666677 ¥188 上海某某饭店
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ 在步骤 11 输出摘要卡片之后执行
config.json 文件SKILL.md 同级目录下的 config.json{
"summary_dir": "/path/to/baoxiao/",
"summary_file": "报销汇总.md"
}
"C:/Users/Alice/Documents/报销/""C:\\Users\\Alice\\Documents\\报销\\"summary_dir + summary_file# 报销汇总
# 报销汇总
## YYYY-MM-DD 文件夹名称
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💰 总金额: ¥XXX (N张)
📋 发票号: xxx/xxx/xxx
📊 分类:
长途交通 N张 ¥XXX (飞机票×N ¥XXX | 火车票×N ¥XXX)
市内交通 N张 ¥XXX
住宿 N张 ¥XXX
退票费 N张 ¥XXX
其他 N张 ¥XXX
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(旧记录继续...)
当本次输入触发招待费/客户模式时,仍然写入同一个 summary_dir + summary_file,并插入到汇总 MD 顶部(紧跟 # 报销汇总 标题之后)。
费用名称 固定为 招待费插入格式:
# 报销汇总
## YYYY-MM-DD 文件夹名称 招待费
| 日期 | 费用名称 | 发票号码 | 金额 | 餐厅/商户 | 来源文件 | 备注 |
|------|----------|----------|------|-----------|----------|------|
| YYYY-MM-DD | 招待费 | 1234567890 | ¥268 | 深圳市某某餐厅 | invoice1.pdf | |
| YYYY-MM-DD | 招待费 | 9876543210 | ¥520.5 | 广州市某某酒楼 | invoice2.jpg | |
(旧记录继续...)
━━━━ 或表格后加一个空行再接下一条 ## 标题)YYYY-MM-DD 使用当前扫描日期文件夹名称 使用被扫描的文件夹 basenamesummary_dir 目录不存在,输出警告并跳过📝 已追加摘要到 <summary_file 路径>config.json:用户的个人配置,包含真实路径,不应提交到版本库config.json.sample:示例配置文件,供其他用户参考.gitignore:排除 config.json,防止意外提交个人路径まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
音频关键字过滤工具 - 根据关键字配置自动识别并删除音频中的指定内容
日本語の概要は準備中です。原文の説明を表示しています。
🔥 用 Gordon Ramsay 风格毒舌吐槽代码质量,生成搞笑且实用的代码审查报告
日本語の概要は準備中です。原文の説明を表示しています。
通用图片生成 Skill,支持多种 AI 模型(ModelScope、Gemini、RunningHub 等),可被其他 Skills 调用
日本語の概要は準備中です。原文の説明を表示しています。
Automate the full QuarkPanTool → mswnlz GitHub content publishing pipeline. Supports Quark / Baidu / Aliyun drives with multi-account rotation. Use when the user provides share URLs and wants: (1) auto-detect drive type and route to correct handler, (2) save resources with automatic account rotation, (3) clean junk files from shared folders, (4) copy promotional files into each folder, (5) generate permanent encrypted share links, (6) auto-classify items into local content dirs (book/movies/AIknowledge/tools/etc.), (7) append/update YYYYMM.md and README index, (8) local git commit, (9) send unified Telegram notifications to multiple groups, (10) rebuild site and deploy to Cloudflare Pages.
日本語の概要は準備中です。原文の説明を表示しています。
文本转语音工具 - 默认 MiniMax TTS,支持切换 Edge TTS 和 Kokoro TTS (v1.1-zh)
日本語の概要は準備中です。原文の説明を表示しています。
视频变声处理工具 - 从视频提取音频,调用 voice-changer skill 变声后合并回视频。用户要求视频变声、给视频换声音、视频音色转换或处理视频音频时使用。
日本語の概要は準備中です。原文の説明を表示しています。