AIChaBo(あいちゃぼ)は、ユーザーが発行した API キーを使って Discord 上で LLM ( ChatGPT / Gemini / Claude ) を利用できる Bot です。
構成は「UI層」「AI層」「共通層」に分かれており、将来的な多プラットフォーム対応を想定しています。(対応するとは言っていない)
利用者の認証情報に API キー を設定する仕組みのため、LLMの利用料は利用者が負担する形になります。
サーバー単位で利用者の認証情報を共有することもでき、その場合は共有元の利用者が利用料を負担することになります。
使用される認証情報は、利用者が設定した認証情報>共有された認証情報 となっています。
-
.env.exampleを.envにコピーしてください。 -
必要な トークン・ID を
.envに記入してください:- Discord Developer Portal にアクセス
- 「New Application」からアプリケーションを作成
- 左メニュー「Bot」→「Add Bot」でBotを追加
- 「Token」→「Reset Token」→ 表示されたトークンをコピー
.envの DISCORD_BOT_TOKEN= に貼り付け
🔒 注意:このトークンは絶対に外部に公開しないでください。Gitに含めないよう.gitignoreで保護します。
- DiscordクライアントでDiscordにアクセス
- ユーザー設定 → 詳細設定 → 「開発者モード」を有効化
- 対象のサーバー名を右クリック → 「IDをコピー」
.envの DISCORD_GUILD_ID= に貼り付け
sudo apt update && sudo apt upgrade -y
# Git, Python, venv 等
sudo apt install -y git python3 python3-venv python3-pip unzip
# 任意のディレクトリ作成
cd /opt
sudo mkdir AIChaBo
sudo chown $USER AIChaBo
cd AIChaBo
# 仮想環境の作成と有効化
python3 -m venv venv
source venv/bin/activate
# AIChaBoをクローン
git clone -b main https://github.com/mayusaki3/AIChaBo.git src
cd src
# requirements.txt に応じて依存ライブラリをインストール
pip install -r requirements.txtrequirements.txt に含まれる主なライブラリ:
- python-dotenv
- discord.py>=2.3.2
- aiohttp>=3.12,<4
- duckduckgo-search>=5.3.0
- ddgs
- openai>=1.0.0
- google-generativeai
- anthropic
- PyYAML>=6.0.1
cp .env.example .env
# 環境変数の設定
nano .env/etc/systemd/system/AIChaBo.service
[Unit]
Description=AIChaBo Service
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/opt/AIChaBo/src
ExecStart=/opt/AIChaBo/venv/bin/python ui/discord/Discord_AIChaBo.py
Restart=always
[Install]
WantedBy=multi-user.target# 上記設定を書き込み
sudo nano /etc/systemd/system/AIChaBo.service
# 設定有効化と起動
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable AIChaBo
sudo systemctl start AIChaBo
# 動作確認
sudo journalctl -u AIChaBo -f# AIChaBo サーバーを停止
sudo systemctl stop AIChaBo.service
# 最新のコードを取得
cd /opt/AIChaBo/src
git pull origin main
# 仮想環境をアクティベート
source ../venv/bin/activate
# 必要であれば依存パッケージを再インストール
pip install -r requirements.txt
# サービス再起動
sudo systemctl start AIChaBo.service
# ステータス確認
sudo systemctl status AIChaBo.serviceAIChaBo は以下の /コマンドを提供しています:
| 基本コマンド | 説明 |
|---|---|
/ac_help |
すべての /ac コマンドのヘルプを表示します。 |
/ac_template |
認証情報設定用テンプレート(JSON)をダウンロードします。 |
/ac_auth [file] |
使用するAIチャットの認証情報を登録します。 *1 |
/ac_removeauth |
登録したあいちゃぼの認証情報を削除します。 *1 |
/ac_authsharing |
認証情報が未登録の人に現在の認証情報をサーバー単位で共有します。 *1 |
/ac_authunsharing |
サーバー単位で共有されている認証情報の共有を解除します。 *1 |
/ac_status [option] |
使用中のあいちゃぼの状態を表示します。 *2 |
/ac_threads |
あいちゃぼと会話中のスレッド一覧を表示します。 |
/ac_newchat [title] [Private] |
あいちゃぼとの会話用に新しいスレッドを作成します(件名は任意) |
*1: 認証情報は「自分の認証情報」>「共有された認証情報」の順に使用します。自分の認証情報のみ共有でき、誰の認証情報でも共有解除できます。
*2: optionは、以下が指定できます。
option 説明 -exp現スレッドのコンテキストリストを common/session/dump にエクスポート -expall全スレッドのコンテキストリストを common/session/dump にエクスポート -expprompt現在使用中のプロンプトを common/session/dump にエクスポート -loadpromptプロンプトを再読み込み -expintent現在使用中のインテント/辞書を common/session/dump にエクスポート -loadintentインテント/辞書を再読み込み -printmsg:on/offONで、AIに投げるメッセージ内容をコンソールに出力 -expmsg:on/offONで、AIに投げるメッセージ内容を common/session/dump に出力 -showopt設定されているオプションを表示 -tracetool:on/offONで、AIが起動するツール内容をコンソールに出力
| スレッド内コマンド | 説明 |
|---|---|
/ac_invite |
あいちゃぼを現在のスレッドに招待します。 |
/ac_leave |
あいちゃぼを現在のスレッドから退出させます。 |
/ac_newtopic |
新しくトピックを始めます。以前の会話内容は忘れます。 |
/ac_summary |
現在のトピックを要約し、要約前の会話内容は忘れます。 |
あいちゃぼのチャット機能を使用するには、認証情報(JSONCファイル)のアップロードが必要です。
-
/ac_templateで認証情報設定用テンプレートをダウンロードします。 -
利用するAIチャット毎にリネームして、必要な情報を記入してください:
チャット用、画像認識用、画像生成用と、それぞれ別のLLMプロバイダ/モデルを指定できます。- OpenAI Platform にログイン
- 「+ Create new secret key」でAPIキーを生成
- 表示された
sk-xxxxx...形式のキーをコピー - /ac_template コマンドでダウンロードした JSONCファイル の 各"api_key": に貼り付け 🔒 注意:このAPIキーは絶対に外部に公開しないでください。
- 必要に応じて利用するチャットモデルをJSONファイル の 各"model": に貼り付け
- 必要に応じて以下のリンクよりログインしてBillingより支払方法や使用制限を設定 https://platform.openai.com/account/billing
- Google AI Studio にログインし、API Keys ページを開きます。
- 「Create API key」をクリックして発行・コピー。
- 表示されたキーをコピー
- /ac_template コマンドでダウンロードした JSONCファイル の 各"api_key": に貼り付け 🔒 注意:このAPIキーは絶対に外部に公開しないでください。
- 必要に応じて利用するチャットモデルをJSONファイル の 各"model": に貼り付け
- Anthropic Console にログインします。
- Console の Account / API Keys で Create Key を実行し、表示されたキーをコピーします。
- /ac_template コマンドでダウンロードした JSONCファイル の 各"api_key": に貼り付け 🔒 注意:このAPIキーは絶対に外部に公開しないでください。
- 必要に応じて利用するチャットモデルをJSONファイル の 各"model": に貼り付け
-
利用するAIチャットのファイルを
/ac_authコマンドでアップロードします。
AIチャットを切り替える場合は、別のファイルをアップロードします。/ac_templateコマンドでダウンロードできる認証テンプレートは、複数の AI 機能(チャット・画像認識・画像生成)に対応するように構成されています。{ // あいちゃぼ認証情報テンプレートの仕様バージョン "template_version": "1.0", // === Chat(テキスト会話)用の設定 === "chat": { // 利用プロバイダ名(いずれかを選択: OpenAI / Gemini / Claude ) "provider": "OpenAI", // プロバイダのAPIキー "api_key": "ここにあなたが利用するAPIキーを入力", // 使用モデル(Chat用) // 例: OpenAI: gpt-4o / o4-mini // Gemini: gemini-1.5-pro / gemini-1.5-flash // Claude: claude-sonnet-4-20250514 など "model": "gpt-4o", // 1レスポンスあたりの最大出力トークン "max_tokens": 1500, // プロンプトのカスタマイズ "prompt_overrides": { // あいちゃぼの、追加のふるまいを指示します。'#'で始まる行はコメントです。 "character_append": [ "# あいちゃぼの、追加のふるまいを指示します。", "#【口調上書き】よりビジネス寄りで丁寧な敬体を心がけ、絵文字は原則使わない。" ], // '/ac_summary' コマンドで実行する要約方法を差し替えます。'#'で始まる行はコメントです。 "summary_replace": [ "# 要約のやり方を指示します。'#'で始まる行はコメントです。", "#前置きなく、箇条書き 3〜6 点でまとめてください:", "#- 重要ポイントと事実", "#- 決定事項", "#- 未決・リスク", "#- 次アクション(担当・期日)", "#挨拶や長い引用は入れないでください。" ] } }, // === Vision(画像の説明/OCRなど)用の設定 === "vision": { // 利用プロバイダ名(いずれかを選択: OpenAI / Gemini / Claude ) "provider": "OpenAI", // プロバイダのAPIキー "api_key": "ここにあなたが利用するAPIキーを入力", // 使用モデル(Vision用) // 例: OpenAI: gpt-4o / gpt-4o-mini // Gemini: gemini-1.5-pro / 1.5-flash // Claude: claude-sonnet-4-20250514 など "model": "gpt-4o" }, // === 画像生成(image.generate)用の設定 === "imagegen": { // 利用プロバイダ名(いずれかを選択: OpenAI / Gemini ) "provider": "OpenAI", // プロバイダのAPIキー "api_key": "ここにあなたが利用するAPIキーを入力", // 使用モデル(画像生成用) // 例: OpenAI: dall-e-3 / gpt-image-1 // Gemini: imagen-4.0-generate-001 / imagen-4.0-ultra-generate-001 / imagen-4.0-fast-generate-001 / imagen-3.0-generate-002 など "model": "dall-e-3", // 既定の出力サイズ(モデルによって許容値が異なるため、あいちゃぼに情報があれば補正されます) "size": "1024x1024", // 既定の品質(モデルによって "standard" / "hd" など異なるため、あいちゃぼに情報があれば補正されます) "quality": "standard" } }以下の大項目に分かれています。詳細はテンプレート内のコメントを参照してください。
- chat:テキスト会話に使用する設定です。
- vision:画像を処理する際に使用されます。
- imagegen:画像生成用の設定です。
⚠ 各セクションの
"provider"は"OpenAI""Gemini""Claude"が指定可能です)。
⚠ Web検索機能は DuckDuckGo を使用しています。
AIChaBoの招待リンクの作成方法は以下の通りです。
- Discord Developer Portal にアクセス
- My Applicationsで AIChaBo を選択
- 左メニュー「OAuth2」→「OAuth2 URL Generator」を表示
- 「scopes」で以下のパーミッションをチェック
- bot
- applications.commands - 「Bot Permissions」で以下のパーミッションをチェック
- View Channels
- Send Messages
- Create Public Threads
- Create Private Threads
- Send Messages in threads
- Manage Threads
- Read Message History - Use Slash Commands - 「Generated URL」でコピーしてブラウザで開き、サーバーを選択して招待