Skip to content

全体構成

関連: 要件定義 / インフラ / データ取込 / Discord / Discord エージェント / Streamlit / Cloudflare

全体構成

flowchart TB
  subgraph in [取込]
    AN[Android 通知]
    EM[利用メール これから]
    DC[Discord 手動 / 画像]
  end

  subgraph vm [finance-manager VM]
    IG[ingest API]
    BOT[Discord Bot]
    GEM[Gemini]
    PG[(PostgreSQL)]
  end

  subgraph out [出口]
    CH[Discord 返信]
    GF[Grafana]
    ST[Streamlit]
  end

  AN --> IG --> GEM
  IG --> PG
  DC --> BOT --> GEM
  BOT --> PG
  GEM --> BOT
  BOT --> CH
  PG --> GF
  PG --> ST

Discord 会話の内部(tool ループ)は Discord エージェント。

Proxmox 上の配置

詳細スペックは インフラ。

コンポーネント 置き場所
finance-manager 本体 LXC finance-app(推奨)
cloudflared finance-app に同居(Tunnel 導入時)
PostgreSQL LXC finance-db または既存 PG
Grafana 既存 Grafana VM に PostgreSQL データ源を追加
Streamlit 本体と同じ VM。LAN http://192.168.40.212:8501
  • Discord → 自宅は Bot の 外向き Gateway(ポート開放不要)
  • スマホ → 自宅の自動取込は後から Cloudflare Tunnel
  • グローバルの inbound ポート開放はしない

会計上の扱い

二重計上を防ぐ

都度チャージ運用のため、チャージと支払いを同じ「支出」にしない。

種別 例 集計
支出 PayPay 支払い(店舗への残高払い) 使う金額に含める
資金移動 銀行/クレカ → PayPay チャージ 支出に含めない
固定費 楽天カードの引き落とし、サブスク 支出に含める(別カテゴリ可)

AI / フィードバック

項目 方針
モデル Gemini Flash / Flash-Lite(まずは無料枠で可)
役割 分類(支払い/チャージ/固定費)、短い確認、週次レビュー(後)
トーン 関西弁、ツッコミ。依存や嫉妬は出さない
Cursor 開発専用。常駐 Bot からは使わない
Gemini API Proxmox 上のサービスが呼び出す運用用キー

想定負荷は支払い数回/日 + 週次数回。 個人用途では無料枠で足りる想定である。

プロンプトの渡し方(Skills 代替)は Gemini。 メール処理の詳細は メール取込。

チャネル

Discord(MVP)

詳細は Discord。

  • 出口:確認返信、今月の内訳、予算の残り
  • 入口(手動):テキスト / 画像添付を Bot が受信し Gemini で抽出。訂正も同じ経路
  • 自動取込の本線には使わない(PayPay は Tunnel 直)

LINE(将来)

LINE 連携には Messaging API が要る。 無料 Push は月200通で、「支払いのたび」には向かない。 Discord が安定してから検討する。

Grafana

今日の支出、今週累計、カテゴリ別、(後から)残り予算ゲージを出す。 PostgreSQL を直読みする(Prometheus は必須にしない)。