AI智能记账助手 - 帮你每天5秒完成记账,自动分类、月度分析、超支预警。 支持语音/文字输入,自动识别消费类别,生成可视化月度报表。 适合:月光族、大学生、年轻白领、宝妈等需要控制支出的人群。
Documents
Yaohx Expense Tracker
Try it个人记账助手。当用户发送消费信息(文本或支付截图)时自动识别并记录到本地消费数据库;支持按月归档、分类统计、查看消费记录、生成月度消费报告。触发词:记账、账单、消费记录、花了多少钱、月度总结、消费报告、看看本月消费等。This skill should be used when the user mentions...
What it does
个人记账助手。当用户发送消费信息(文本或支付截图)时自动识别并记录到本地消费数据库;支持按月归档、分类统计、查看消费记录、生成月度消费报告。触发词:记账、账单、消费记录、花了多少钱、月度总结、消费报告、看看本月消费等。This skill should be used when the user mentions recording an expense, checking spending, or requesting a consumption report.
The skill document
记账助手 (Expense Tracker)
概述
一个纯本地处理的个人记账技能。支持文本输入和支付截图两种方式记录消费,按月归档到本地 JSON 文件,支持消费分类管理、记录查询、月度报告生成。所有数据存储和处理均在本地完成,不依赖任何云端 API。
数据存储位置
所有数据文件存放在工作区根目录下(即当前工作目录):
| 文件/目录 | 说明 |
|---|---|
categories.json | 消费分类定义文件 |
expenses/ | 消费记录目录 |
expenses/expenses-YYYYMM.json | 按月份的消费记录文件 |
数据格式详见 references/data_schema.md。
触发场景
- 文本记账:用户发送消费描述,如 "午餐花了25元"、"打车15块"
- 图片记账:用户发送微信支付/支付宝截图,直接识图后记录
- 手动记录:用户说"记账"并提供详细信息
- 查看记录:用户说"看看本月消费"、"本月花了多少"
- 月度报告:用户说"生成本月消费报告"、"月度总结"
- 删除记录:用户说"删除刚才那条记录"、"删掉某笔消费"
工作流程
初始化(首次使用时执行)
当用户首次使用记账功能时,先执行初始化:
python scripts/init_db.py
此脚本在工作区根目录创建:
categories.json(含默认分类)expenses/目录- 当前月份的
expenses/expenses-YYYYMM.json空文件
流程 A:处理文本账单
- 从用户消息中提取关键信息:日期、时间、金额、商家、消费类别、支付方式、备注
- 如果用户未提供日期/时间,默认使用当前日期和时间
- 根据商家名称和备注,自动匹配消费分类(匹配规则见下方)
- 调用脚本写入记录
- 回复用户确认记录成功,展示本次消费摘要和本月累计
关键:调用脚本时使用独立参数,绝不传递 JSON 字符串
正确调用方式:
python scripts/record_expense.py --amount 25 --merchant "兰州拉面" --category "餐饮" --date 2026-07-09 --time 1230 --payment "微信" --note "午餐"
参数说明:
--amount:金额(数字,必填)--merchant:商家名称(必填)--category:消费分类(可选,不传则自动匹配)--date:日期,格式 YYYY-MM-DD(可选,默认今天)--time:时间,格式 HHMM(可选,默认当前时间)--payment:支付方式(可选,如 微信/支付宝/现金/银行卡)--note:备注(可选)
流程 B:处理图片账单(支付截图)
根据模型能力选择路径:
路径 B1:多模态模型(能直接识图)
如果你是多模态模型,可以直接观察图片:
- 用户发送支付截图后,直接观察图片,提取以下信息:
- 金额(必填)
- 商家/收款方名称
- 支付方式(微信/支付宝等)
- 交易时间(如图片中可见)
- 备注/商品说明
- 将提取结果展示给用户确认(如有不确定的信息请用户补充)
- 用户确认后,使用独立参数调用
record_expense.py写入记录 - 回复确认
路径 B2:非多模态模型(无法识图,使用本地 OCR)
如果你无法直接观察图片(非多模态模型),使用本地 OCR 脚本提取文字:
- 获取用户发送的截图文件路径
- 调用 OCR 脚本提取文字和结构化信息:
python scripts/ocr_image.py --image "截图文件路径"
脚本使用 rapidocr-onnxruntime 进行本地 OCR:
- OCR 脚本输出 JSON 格式结果:
{
"success": true,
"raw_text": "微信支付 ¥25.00 向兰州拉面付款...",
"structured": {
"amount": 25.00,
"merchant": "兰州拉面",
"date": "2026-07-09",
"time": "1230",
"payment": "微信",
"note": null
},
"method": "rapidocr"
}
- 读取
structured中的字段,如果关键信息(金额、商家)已提取到,展示给用户确认后调用record_expense.py写入记录 - 如果
structured中部分字段为 null,根据raw_text上下文自行推断补充,或请用户手动补充缺失信息 - 如果 OCR 脚本返回
"success": false,说明 OCR 不可用,此时必须请用户手动输入消费信息(金额、商家等),不要直接报错终止
OCR 不可用时输出示例:
{
"success": false,
"error": "rapidocr-onnxruntime not installed",
"install_hint": "pip install rapidocr-onnxruntime",
"fallback_instruction": "OCR is not available. Please ask the user to manually input the expense details."
}
OCR 依赖安装(非多模态模型必须安装):
如需使用图片记账功能,运行:
python -m pip install rapidocr-onnxruntime
如果未安装 rapidocr,OCR 脚本会返回 fallback_instruction,此时必须请用户手动输入消费信息。
多模态模型不需要安装 OCR——直接识图即可。
流程 C:查看消费记录
调用脚本查询:
# 查看指定月份
python scripts/list_expenses.py --month 202607
# 查看指定月份某分类
python scripts/list_expenses.py --month 202607 --category "餐饮"
# 不传 --month 则默认当前月
python scripts/list_expenses.py
流程 D:生成月度消费报告
# 指定月份
python scripts/generate_report.py --month 202607
# 不传则默认当前月
python scripts/generate_report.py
报告内容包含:
- 本月总支出金额
- 各分类支出金额及占比
- 日均消费金额
- 单笔最高消费
- 支付方式分布
- 与上月对比(如果上月数据存在)
将报告摘要回复给用户,可配合 show_widget 展示饼图或柱状图。
流程 E:删除消费记录
python scripts/delete_expense.py --id 2026-07-09-001
删除后回复用户确认。
消费分类自动匹配规则
当用户未明确指定分类时,根据商家名称和备注自动匹配:
- 含"餐、饭、面、粉、菜、外卖、咖啡、奶茶、饮料、零食、烧烤、火锅、早点、早餐、午餐、晚餐、夜宵"等 →
餐饮 - 含"打车、滴滴、公交、地铁、加油、停车、充电、单车、出租、高铁、火车、机票、飞机"等 →
交通 - 含"超市、便利店、淘宝、京东、拼多多、天猫、苏宁、网购"等 →
购物 - 含"房租、房贷、水电、燃气、物业、宽带"等 →
居住 - 含"电影、KTV、游戏、旅游、景点、门票、健身"等 →
娱乐 - 含"医院、药房、诊所、挂号、药"等 →
医疗 - 含"话费、流量、充值"等 →
通讯 - 含"衣服、鞋、裤、裙、外套、服装"等 →
服饰 - 含"书、课程、培训、学费、教育"等 →
教育 - 其他默认归入
其他
脚本调用注意事项
绝不传递 JSON 字符串
所有脚本均使用 argparse 接收独立参数。不要将数据组装成 JSON 字符串再传给脚本。这是为了避免 Windows 下 shell 引号转义问题。
错误示例(会导致 Windows 下引号冲突):
python scripts/record_expense.py '{"amount": 25, "merchant": "兰州拉面"}'
正确示例(独立参数,无嵌套引号问题):
python scripts/record_expense.py --amount 25 --merchant "兰州拉面"
使用 python 而非 python3
在 Windows 上,python3 命令通常不存在。始终使用 python。
中文参数
中文参数用双引号包裹即可,不需要额外转义:
python scripts/record_expense.py --amount 25 --merchant "兰州拉面" --category "餐饮"
脚本路径
脚本路径相对于 skill 目录。脚本内部会自动以当前工作目录作为数据存储根目录。如需指定其他数据目录,使用 --data-dir 参数:
python scripts/record_expense.py --amount 25 --merchant "兰州拉面" --data-dir "C:\Users\me\my-expenses"
脚本清单
| 脚本 | 功能 | 关键参数 |
|---|---|---|
scripts/ocr_image.py | OCR 识别截图文字(非多模态模型用) | --image(必填) |
scripts/init_db.py | 初始化数据文件 | --data-dir(可选) |
scripts/record_expense.py | 记录一笔消费 | --amount, --merchant, --category, --date, --time, --payment, --note |
scripts/list_expenses.py | 查询消费记录 | --month, --category(均可选) |
scripts/generate_report.py | 生成月度报告 | --month(可选,默认当月) |
scripts/delete_expense.py | 删除一条记录 | --id |
数据格式
数据格式详见 references/data_schema.md。
注意事项
expenses-YYYYMM.json中id格式为YYYY-MM-DD-NNN,NNN 为当天序号(001 起),同一日期内递增- 每次写入后自动更新
last_updated时间戳 - 金额保留原始精度,汇总时四舍五入到两位小数
- 所有 Python 脚本使用 UTF-8 编码
- 脚本输出为 JSON 格式,方便模型解析
Related skills
智能自动记账助手。一句话即可完成记账,自动识别时间、金额、分类。 支持自然语言输入(如"昨天午饭30"),无需手动填写日期/类型。 本地 SQLite 存储,生成月度可视化 HTML 报告。 触发词:记账, 消费, 花了, 买了, 收到, 今天花, 记一笔, 查账, 账单报告, auto-bookkeeping,...
Personal expense tracker - record expenses, auto-categorize, monthly statistics with total and category breakdown
出差报销整理向导。零配置即用——发票照片 AI 视觉直接识别,按类别+时间整理发票、重建行程日志、生成报销单、自动计算差补、税额分离、退改签/红字发票处理、合规审查(连号发票/人均超标/证据链/住宿缺失/交通断链/抬头核对/发票章检测)。已接入在线文档/批量 OCR/会议日程等服务时自动增强。触发:帮我整理报销、...
Log a purchase in one line, split it across people, and settle up without losing the receipt.
Manage daily bills, expenses, and recurring payments with tracking, reminders, and analysis. Use when the user asks about bill management, expense tracking,...