Skip to main content

概览

记账模块让用户通过自然语言完成收支记录,无需手动填写表单。支持文本记账、图片识别记账和复杂查询。
用户: "午饭 35 元"
Agent → ledger_insert(amount=35, category="餐饮", item="午饭")
Agent: "已记录:餐饮 - 午饭 ¥35.00"

数据模型

字段类型说明
idint主键
user_idint所属用户
amountdecimal金额
currencystring币种(默认 CNY)
categorystring分类(餐饮、交通、购物等)
itemstring具体条目
transaction_datedate交易日期
created_atdatetime创建时间

工具链

基础 CRUD

工具功能
ledger_insert创建记账记录
ledger_update按 ID 更新记录
ledger_delete按 ID 删除记录
ledger_get_latest获取最新一条
ledger_list_recent获取最近 N 条
ledger_list按日期/分类/条目筛选

Text2SQL 智能查询

ledger_text2sql 支持三种模式:
用户自然语言 → LLM 生成 SQL → 执行并返回结果
用户: "这个月餐饮花了多少"
→ SELECT SUM(amount) FROM ledgers WHERE category='餐饮' AND ...
→ "本月餐饮支出共 ¥1,280.00"

图片记账

当用户上传小票/支付截图时:
  1. Router 检测到图片 + 记账意图
  2. analyze_receipt 工具提取结构化数据(金额、商户、日期)
  3. 自动调用 ledger_insert 创建记录
识别关键词:记账、入账、账单、小票、发票、支付截图、付款截图、消费截图、金额、花了、支出、收入、报销

API 端点

方法路径说明
GET/api/ledgers列表查询(支持 limit、before_id 分页)
POST/api/ledgers创建记录
PATCH/api/ledgers/{id}更新记录
DELETE/api/ledgers/{id}删除记录
GET/api/stats/ledger统计汇总(day/week/month 维度)
GET/api/calendar日历视图(按日聚合账单 + 日程)

使用示例

"午饭 35 元"           → 自动记录
"上个月花了多少"       → Text2SQL 查询
"这张小票帮我记一下"   → 图片识别记账
"把昨天咖啡改成 28 元" → 更新记录
"删掉最后一条"         → 删除记录