用途
lovstudio-expense-report 用于将发票信息转换为按类别整理的 Excel 报销报告。它从图片或文字中提取发票数据,对费用进行分类,并生成一份带有每个类别小计的专业 Excel 报告。
适用时机
- 用户有发票照片或扫描收据需要处理
- 用户用文字描述费用并希望被整理
- 用户需要一份分类的报销单
- 用户提到发票报销、报销汇总、发票整理、expense report
主要能力
费用类别
技能支持以下类别及对应的关键词或示例:
- 业务招待:客户餐费、商务宴请、礼品、招待
- 差旅-交通:机票、火车票、高铁、出租车、打车、网约车、加油、过路费、停车费
- 差旅-住宿:酒店、住宿、宾馆
- 差旅-餐饮:出差期间餐费、工作餐
- 办公用品:文具、打印、办公耗材、办公设备
- 通讯费:话费、流量、网费、宽带
- 其他:不属于以上类别的费用
输出格式
生成的 Excel 文件包含两个工作表:
- 发票报销汇总:完整明细,按类别分组并带小计
- 分类汇总:汇总表,包含类别、数量、小计
样式采用 Lovstudio warm-academic 风格(陶土色表头 #CC785C,暖奶油色点缀)。
使用方式
工作流程分为以下阶段:
第一步:收集发票数据
接受以下任意形式的输入:
- 图片:使用 Read 工具读取发票照片,提取日期、商户、金额、项目类型、备注。
- 文字描述:从用户文本中解析相同字段。
- 混合输入:多张图片加补充文字。
每张发票提取以下字段:
{
"date": "2026-04-15",
"vendor": "海底捞(国贸店)",
"item": "客户餐费",
"amount": 486.00,
"category": "业务招待",
"note": "与XX公司李总晚餐"
}
第二步:分类
将每张发票归入上表中的类别。规则如下:
- 如果用户明确说明类别,则使用该类别。
- 如果项目或商户明显匹配某个类别的关键词,则自动归入。
- 对于有歧义的项目(例如「餐费」可能是业务招待或差旅-餐饮):
- 如果备注中提到客户或顾客,则归为业务招待
- 如果上下文是出差,则归为差旅-餐饮
- 如果不明确,则询问用户
第三步:与用户确认
生成之前,以表格形式展示提取的数据:
| # | 日期 | 商户 | 项目 | 金额 | 分类 | 备注 |
|---|---|---|---|---|---|---|
| 1 | 2026-04-15 | 海底捞 | 客户餐费 | 486.00 | 业务招待 | 与XX公司李总 |
| 2 | 2026-04-14 | 滴滴出行 | 打车 | 45.50 | 差旅-交通 | 机场→酒店 |
使用 AskUserQuestion 询问:「以上信息是否正确?需要修改或补充吗?」
第四步:生成 Excel
将确认后的数据写入临时 JSON 文件,然后运行:
python expense-report-skill/scripts/generate_report.py \
--input /tmp/invoices.json \
--output "发票报销汇总-YYYYMMDD.xlsx"
JSON 格式(对象数组):
[
{"date": "2026-04-15", "vendor": "海底捞", "item": "客户餐费", "amount": 486.0, "category": "业务招待", "note": "与XX公司李总"},
{"date": "2026-04-14", "vendor": "滴滴出行", "item": "打车", "amount": 45.5, "category": "差旅-交通", "note": "机场→酒店"}
]
第五步:交付
告知用户:
- 输出文件路径
- 总金额及按类别的明细
- 提醒查看「分类汇总」工作表以获取汇总
适用场景
- 需要整理发票照片或扫描收据的个人或团队
- 需要将文字描述的费用整理为结构化报告的用户
- 需要生成分类报销单的场景
限制
技能资料中说明了以下边界处理方式:
- 模糊或无法识别的图片:告知用户哪些字段无法提取,请其手动提供。
- 外币:注明币种;如果用户提供汇率则换算为人民币,否则保留原币种并附注。
- 重复发票:生成前标记潜在的重复项(相同日期、商户、金额)。
- 发票无日期:使用用户提供的日期,或标记为「日期不详」。
关于收费、价格、平台支持范围等信息,资料中暂未提供。