Skip to content

Discord

関連: アーキテクチャ / データ取込 / Gemini

役割分担

自動取込の本線には使わない

Discord は 人との入出力チャネル、自動は Tunnel + メール。 Grafana / PostgreSQL 向けに構造化データをそのまま入れたいことと、 Discord 文面パースを本線にすると経路が脆いことが理由。

向き 用途 MVP
自宅 → Discord 厳し目フィードバック、確認、週次レビュー 必須
Discord → 自宅 手動追加(テキスト / 画像)、訂正、取消。DM も可 必須
PayPay 自動取込の主経路 使わない(Tunnel 直 POST を正とする)

チャンネル案

チャンネル 用途
#finance AI からの厳し目通知・確認返信
#finance-inbox 手動入力(テキスト / 画像 / スクショ)
#finance-imports(任意) 週次 CSV 添付

最初は #finance 1本でも可。混ざってきたら inbox を分ける。
DM でも会話できる(Bot と共通サーバにいるユーザーから)。

手動追加

テキスト

例:

スタバ 680 食費
現金で電車 200
さっきの取消
給料 280000
このままで(今月予算を確定・未割当は別枠貯金へ)
貯金 60000 食費 70000 にして
家賃を 80000 にして(固定費マスタ)
月末締め(変動の実残を別枠貯金へ)
別枠貯金いくら
欲しいもの Switch 35000
旅行で 80000、期限は 2026-09-30
カテゴリを日用品に直して

支出を保存すると、返信の末尾に 【変動の残り】(変動枠・該当分類・食費の今日/週目安)が付く。
月初は draft の予算案(給与→固定貯金→固定費→変動枠)が出る。「このままで」で確定。
詳細は 月次予算

Bot が受信 → Gemini で抽出 → 検証 → PG 保存 → 厳し目で確認返信。

画像・添付(推奨 UX)

よしなに添付して投げる。

添付例 期待する処理
PayPay / クレカの明細スクショ 金額・店名・日時を抽出
レシート写真 合計金額を優先抽出(明細行は取れればボーナス)
家計メモの写真 読める範囲で支出化
CSV ファイル 週次取込扱い(画像解析ではない)

フロー:

Discord に画像(+ 任意の一言)
  → Bot が添付を取得
  → raw(画像URL/バイナリメタ)を保存
  → Gemini Vision で構造化抽出
  → プログラム検証
  → PG 保存
  → 「記録した。今日あと ¥…」と返信

テキストと画像が両方ある場合は、テキストをヒント(カテゴリ指定など)として使う。

Bot 要件

  • Bot + Gateway: Discord → 自宅(メッセージ / 添付の受信)に必要。外向き WebSocket なので自宅の inbound 公開は不要
  • Message Content Intent: 本文読み取りに必要
  • 添付読み取り権限

MVP から Bot を使う(手動入力・画像があるため)。Webhook のみでは Discord→自宅ができない。

カテゴリについて

PayPay 自動経路と同様、多くの通知からは商品内訳は取れない。
一方で レシート画像で明細が読めるときline_items に内訳を保存する。
読めないスクショは合計・店名・日時が中心。

加えて、店種 + 時間帯から 場面(夕食 / 遊び など)occasion として推定する。
カテゴリは Gemini 推定、またはユーザーが一言で指定・訂正。

例: 画像添付 + 日用品 のメッセージ。

やらないこと

  • PayPay 自動通知の本線を Discord Webhook 経由にする(Tunnel を本線に維持)
  • 認証なしで誰でも投稿できる公開 Webhook を取り込み唯一の入口にする