Skip to content

Web 管理画面

概要

ideal-bot には Discord OAuth2 認証付きの Web 管理画面があります。
ギルド管理者はブラウザから語彙・設定・LLM キーを管理できます。

画面構成

ログイン画面 (/login)

Discord アカウントでログインします。Bot が参加しているサーバーの管理権限(MANAGE_GUILD)を持つユーザーのみ操作できます。

サーバー選択 (/guilds)

Bot が参加しているサーバーのうち、あなたが管理権限を持つサーバーの一覧を表示します。クリックで各サーバーの管理画面に進みます。

Bot 管理者には「Bot 管理者設定」ボタンも表示されます。

サーバー管理画面 (/guild/:guildId)

単語一覧タブ

  • 登録語彙の検索・確認・削除

設定タブ

  • Bot 有効/無効
  • 反応確率(reply_rate)
  • 会話モード継続時間(conversation_ttl)
  • 会話コンテキスト件数(context_count)
  • 応答遅延パラメータ
  • Bot のキャラクター・口調(bot_persona)
  • LLM プロバイダー・モデル
  • ギルド専用 LLM API キー

Bot 管理者画面 (/admin)

Bot 管理者のみアクセス可能config.jsonbot_admin_ids に登録されたユーザー)

グローバル設定タブ

  • Bot 全体の LLM API キー(ギルド専用キーがない場合のフォールバック)
  • グローバル LLM プロバイダー・モデル
  • Discord キャッシュ TTL
  • ローカル LLM システムプロンプト
  • スラッシュコマンドの再同期

ギルド一覧タブ

  • 全ギルドの Bot 有効/無効を一覧管理

/dashboard コマンド

Discord サーバー内から管理画面の URL を受け取ることができます:

/dashboard

Bot が実行チャンネルに管理画面の URL(https://your-domain.com/guild/ギルドID)を返信します。
未ログインの場合は Discord ログインページへ誘導されます。

認証の仕組み

1. ユーザーが管理画面にアクセス
2. Discord OAuth2 でログイン(スコープ: identify guilds)
3. FastAPI がセッション発行(httponly 署名付き Cookie)
4. セッションに「管理できるギルド一覧」を保持
5. 以降のリクエストはセッション Cookie で認証

JWT は使用せず、セキュアなセッション Cookie で管理しています。

次のステップ

Released under the MIT License.