これは簡易的なDiscordチャットボットです。Geminiとの会話機能が実装されています。 @konoka-iori が個人的に使用するために作成されました。主に小規模なDiscordサーバーでの利用を想定しています。 Gemini APIを使ったDiscordのチャットボット作ってみたいよという方への参考になれば幸いです。
テキストチャンネルで以下のコマンドを入力することで、対応するBOTの機能を利用できます。
/about
: BOTの説明を表示します。/ping
: BOTの生存確認を行い、応答速度を表示します。/chat
: Geminiとチャットができます。一問一答方式で、会話履歴はBOT側で保存されません。
メッセージを右クリックされると表示されるメニューから「アプリ」を選択すると以下のコマンドが表示され、対応するBOTの機能を利用できます。
Gemini replies to message
: すでに送信されているメッセージを選択してこのコマンドを使用すると、選択されたメッセージにBOTが返信します。一問一答形式で、会話はBOT側で保存されません。
Warning
この機能はCogs移行に伴い停止されています。
将来的に復活する可能性はありますが、しばらくの間利用できませんのでご了承ください。
- このリポジトリをクローンします。
.env.sample
を.env
にリネームします。.env
のDISCORD_TOKEN
にDiscordのBOTのトークンを入力します。.env
のGEMINI_API_KEY
にGeminiのAPI Keyを入力します。- 以下のコマンドを実行し、コンテナを起動します。
docker-compose -f .\.devcontainer\docker-compose.yml up -d
Caution
使用するときは必ず .env.sample
を .env
にリネームしてください。
.env
は .gitignore
に登録されているため、GitHubにアップロードされません。
この操作を忘れ、 .env.sample
にAPI Keyなどの情報を入力すると正常に動作しないどころか、うっかりGitHubにアップロードするとAPI Keyなどの重要な情報が漏洩する可能性があります。必ず .env
にリネームしてから情報を入力してください。
このBOTを正常に動作させるには以下の権限が必須です。
SCOPES:
- bot
- applications.commands
BOT PERMISSIONS / TEXT PERMISSIONS:
- Send Messages
- Send Messages in Threads (スレッド内でもBOTを利用したい場合は必須)
- Embed Links
- Read Message History
main
: 動作確認済みのブランチです。develop
: 開発用のブランチです。こちらは動作確認が行われていません。add/
: New Featureブランチです。新機能などの追加に使用します。develop
から派生。improvement/
: Improvement用ブランチです。既存の機能の改善に使用します。develop
から派生。
- このBOTは個人利用を想定して作成されています。
- このBOTはDiscordで動くものです。DiscordのアカウントやBOTの作成方法、利用規約、サーバーの作成方法などについては公式サイト等を確認してください。
- このBOTはGemini APIを利用しています。Geminiの概要、利用規約、APIの利用方法・API Keyの取得などについては公式サイト等を確認してください。
- 会話の内容が @konoka-iori に送信されることはありませんが、Gemini側で保存されて学習等に利用される場合があります。詳細は公式サイトを確認してください。
- このプロジェクトはみんな大好きMITライセンスです。BOTを使うときは自己責任で、かつこのリポジトリのURLを明記してください。詳細はLICENSEをご覧ください。
- 不具合報告、機能追加要望などはIssueください。Pull Requestも歓迎です!
- 1.0:
- 初版リリース(
/about
と/chat
の追加)
- 初版リリース(
- 1.1:
- ユーザーが送信した内容を返信に表示するよう改善 #3
- 1.2:
- Pythonのバージョンを3.9から3.11に変更
- 不具合修正 #9
- 1.3:
- 2.0:
- 機能追加 #2
- ドキュメント修正
- `2.1:
- JSONの形式を更新 #15
- グローバルコマンドに対応
- 依存関係を更新
- Gemini 1.5 Proに対応
- カスタムアクティビティに対応
- 全体的なリファクタリングを実施
/about
のEmbedを変更- ドキュメント修正
- 2.2:
/ping
コマンドを追加 #19- 回答にかかった時間がEmbedに表示されるように変更
- Embedのフッターとタイムスタンプを追加
/about
のEmbedに/ping
の説明を追加し、スラッシュコマンドのリンクを追加- 不具合修正(グローバルコマンドが正常に同期されない問題を修正)
- コードのリファクタリング
- ドキュメント修正(botの権限設定を追加)
- 2.3:
- 2.4:
- 2.5