全体構成¶
関連: 要件定義 / インフラ / データ取込 / 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 は必須にしない)。