name: expense_logging description: 支出記錄。當用戶需要記錄消費、查詢支出統計或追蹤預算時觸發,包括:快速記帳、分類統計、月度報告、預算提醒。
Expense Logging
功能說明
記錄用戶的日常支出,自動分類並儲存至本地資料庫(SQLite)。支援快速記帳、分類統計查詢、月度報告生成與預算追蹤提醒。
執行步驟
1. 解析支出資訊
從用戶訊息提取以下欄位:
- 金額(必填):數字 + 幣別,預設 USD
- 類別(自動判斷):餐飲、交通、購物、娛樂、帳單、其他
- 日期(選填):預設為今天
- 商家(選填):消費地點或店家名稱
- 備註(選填):額外說明
2. 確認與寫入
- 回覆用戶確認記錄內容
- 使用 SQLite 寫入支出資料庫
- 回傳寫入成功訊息
3. 統計查詢(當用戶要求時)
- 查詢 SQLite 資料庫,依類別/日期範圍彙總
- 計算各類別佔比
- 與預算額度比較,提示超支風險
4. 月度報告(每月初或用戶要求時)
[月份] 支出報告
總支出:$X,XXX
餐飲:$XXX(XX%)
交通:$XXX(XX%)
購物:$XXX(XX%)
其他:$XXX(XX%)
預算使用率:XX%
工具指令
- SQLite:支出記錄的 CRUD 與查詢彙總
- cron:月度報告自動生成排程
錯誤處理
| 情境 | 處理方式 |
|---|---|
| 未提供金額 | 追問「花了多少錢?」 |
| 金額格式異常(如負數) | 提醒「金額需為正數,請重新輸入」 |
| 類別無法判斷 | 列出類別選項供用戶選擇 |
| 資料庫操作失敗 | 回覆「記錄失敗,請稍後再試」並暫存資料 |
| 查詢無結果 | 回覆「該期間沒有支出記錄」 |
使用範例
- 「午餐花了 15 塊」
- 「昨天加油 $60」
- 「這個月花了多少錢?」
安全邊界
- 不可修改或刪除支出記錄,除非用戶明確要求
- 金額超過 $500 時需二次確認
- 不提供投資或理財建議,僅做記錄與統計
- 不得存取支出資料庫以外的資料
- 幣別預設 USD,若用戶指定其他幣別則照記不換算