Skip to content

初回準備・実装順

作業の手順は、このセクションを追う。 日常の運用入口は 運用。構成は アーキテクチャ。

手順 いつ使うか
PostgreSQL finance-manager VM に DB を入れるとき
Bot の更新 コードを git pull して systemd で再起動するとき
systemd Bot を常駐させるとき
Grafana 接続 PG を読み取り専用で可視化するとき

実装前に用意するもの

詳細設計は構成側を参照する。

1. Gemini API(運用用、Cursor とは別)

  1. Google AI Studio で API キー作成
  2. Proxmox の環境変数へ保存

推奨モデル(MVP): gemini-3.5-flash(安定 Flash)。 フォールバック例: gemini-3.5-flash-lite。 gemini-1.5-flash は 404 になり得る。gemini-2.5-flash-lite は新規キーで 404 になり得る。 環境変数 GEMINI_MODEL / GEMINI_MODEL_FALLBACKS で切り替える(未設定時のデフォルトも gemini-3.5-flash 起点)。 店名の grounding 試行の知見は 店名 Web 検索の試行知見。

個人の支払い数回/日なら無料枠で足りる想定である。 家計データの学習利用が気になる場合は従量課金へ移す。

運用中の枠の確認: レート制限(直近28日)。

2. Discord

詳細は Discord / Discord Bot。

MVP から Bot を使う(手動テキスト / 画像受信があるため)。 確認返信だけなら Webhook でも足りるが、入口も Discord にするなら Bot が必要である。

  1. Discord Application / Bot 作成(いまのアプリ: Developer Portal)
  2. Message Content Intent を有効化
  3. チャンネル例: #finance(必要なら #finance-inbox)
  4. Bot トークンを env へ

3. Android / Cloudflare

  1. Tasker + AutoNotification を用意 → Tasker
  2. ingest.finance.nkjm.dev の Tunnel / Access / Bearer → Cloudflare

4. メール / CSV / Grafana

5. 環境変数(予定)

DATABASE_URL=postgresql://USER:PASSWORD@HOST:5432/finance_manager
INGEST_BEARER_TOKEN=
# Cloudflare Access Service Token は主に Tasker 側
# CF_ACCESS_CLIENT_ID=
# CF_ACCESS_CLIENT_SECRET=
GEMINI_API_KEY=
DISCORD_BOT_TOKEN=
DISCORD_GUILD_ID=
DISCORD_CHANNEL_ID=
# 互換、通知専用に残す場合
# DISCORD_WEBHOOK_URL=
IMAP_HOST=
IMAP_USER=
IMAP_PASSWORD=

インフラ作成手順の目安は インフラ。

実装順(合意済み)

自宅インフラを整えたうえで、次の順で進める。

  1. Discord Bot + Gemini + PostgreSQL(手動テキスト/画像 → 関西弁の確認返信)
  2. Grafana ← PostgreSQL(最低限の可視化)
  3. Cloudflare Tunnel + ingest API + Tasker(PayPay 自動)
  4. メール / CSV
  5. 予算ルールなど高度化

Tip

最初から Tunnel / Tasker は必須ではない。 Discord → 自宅は Bot Gateway で先に成立させられる。