Skip to content

Angie-Ai1/SubFlow

Repository files navigation

SubFlow — Subscription Management Automation

一個指令啟動,自動從 Gmail 解析訂閱帳單、LINE Bot 扣款前提醒、Streamlit 後台一覽所有費用。


開發背景

市面上已有 Gemini 等 AI 助理能夠摘要郵件、回答「我這個月花了多少錢」這類問題。 但在實際使用後,我發現這類工具有幾個結構性盲點:

  • 被動查詢,非主動提醒:要有感覺「快扣款了」才會去問,但訂閱費往往在渾然不覺中從帳戶消失。
  • 無持久化記錄:每次對話都是全新的,沒有跨月比較、沒有歷史趨勢、也沒辦法問「今年哪個月花最多」。
  • 依賴自然語言,誤差大:AI 解析「$12.99 charged」和「已向您收取 NT$399」的準確率不穩定,更無法在解析失敗時給出明確的錯誤原因。
  • 缺乏行動介面整合:我習慣用 LINE 處理日常事務,但 AI 助理無法推播通知到 LINE,只能被動等我去問。

SubFlow 的目標不是取代 AI 助理,而是把「訂閱追蹤」這個特定場景做到自動化、可稽核、有主動行為能力。


三秒快速啟動

前提:已安裝 Docker Desktop

# 1. Clone
git clone https://github.com/your-org/subflow.git
cd subflow

# 2. 互動式建立 .env(腳本會引導你輸入 LINE / Gmail API Key)
.\setup.ps1

# 3. 啟動所有服務(含自動 DB Migration)
docker compose up -d --build
# 確認服務狀態(三個服務都應顯示 running)
docker compose ps

# 查看啟動日誌(若服務沒反應可用此除錯)
docker compose logs -f app

完成後開啟:


需要準備的 API Key

服務 用途 取得方式
LINE Messaging API Bot 通知 + Webhook LINE Developers Console
Google Gmail API 自動解析收據郵件 Google Cloud Console → 啟用 Gmail API

詳細申請步驟請見 docs/SETUP.md


核心功能

功能 說明
Gmail 自動解析 每 6 小時掃描信箱,擷取訂閱金額、服務名稱、計費週期
LINE Bot 查詢 輸入「訂閱清單」、「即將到期」、「搜尋 Netflix」即可查詢
扣款前推播提醒 每日定時推播即將扣款的訂閱(可設定提前天數)
Streamlit 後台 視覺化管理訂閱、查看月支出趨勢、手動新增記錄

LINE Bot 指令

輸入 功能
訂閱清單 / list 列出所有啟用中的訂閱及下次扣款日
即將到期 / upcoming 列出 N 天內扣款的訂閱
搜尋 <名稱> / search <名稱> 模糊搜尋訂閱
停用 <名稱> / disable <名稱> 停用訂閱
說明 / help 顯示完整指令說明

技術棧

層次 技術
Web / Webhook FastAPI + Uvicorn
通知 LINE Messaging API (line-bot-sdk v3)
郵件解析 Google Gmail API
資料庫 MySQL 8.4 + SQLAlchemy 2.x + Alembic
管理後台 Streamlit + Altair
排程 APScheduler
容器化 Docker + Docker Compose
套件管理 Poetry
CI/CD GitHub Actions(Lint + Test)

文檔


License

MIT

About

自動化訂閱管理工具。透過 Gmail 擷取帳單,結合 LINE 提醒與 Streamlit 後台,追蹤每月訂閱支出

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages