by 1RO8s 2023-APACHE LICENSE, 2.0
ChatGPTを使ってDiscordのPublic channnelの要約を投稿するスクリプトです。
masuidriveさんが開発されたSlack版をもとにしています。
OpenAI の情報取扱に関する規約は下記などを確認してください。
API data usage policies | OpenAI
- 動作時刻の25時間前までのチャットを要約し、指定したチャンネルに投稿。
- GitHub Actions で毎日午前5時に動く。
- 全てのパブリックチャンネルが対象
- 右上の"Fork"ボタンを押して、自分のリポジトリにforkします
- 有料プランにするなどして GitHub Actions が実行できるようにしておきます
- 下記リンクを参考にDiscord Botを作成する
※ 作成時に取得したTOKENをメモしておくこと
※ Botを追加するには「サーバー管理」権限が必要です
- Developer Portalにて、作成したアプリケーションのページを開く
- OAuth2 -> Generalを開き、CLIENT ID の"Copy"を押して値を取得しておく
- 以下のURLを開いて、対象のサーバーにbotを招待する。YOUR_CLIENT_IDには上記で取得した CLIENT ID を設定する。
https://discord.com/api/oauth2/authorize?client_id=YOUR_CLIENT_ID&permissions=67584&scope=bot
- "メッセージを送信"、"メッセージ履歴を読む"にチェックを入れて、"認証"」を押します
- Developer Portalにて、作成したアプリケーションのページを開く
- Botメニューを開き、MESSAGE CONTENT INTENTを有効化する
- "Settings"タブを開き、左の"Secrets and variables" -> "Actions"を開きます
- 右上の緑の"New Repository Secret"をクリックすると環境変数が設定できるので、次の 4 つの変数を設定します
- Bot作成時に取得したTokenをコピーしてValueに貼り付けます
※ なくしてしまった場合は"Reset Token"ボタンを押して再取得する
- OpenAI の Web サイトにアクセスしてください
- 右上の"Sign In"ボタンをクリックし、アカウントにログインしてください
- ページ上部の"API"メニューから、"API Key"をクリックして、API キーを生成します
- "API Key"ページにアクセスすると、API キーが表示されます。これをコピーして Value に貼り付けます
- Discordの開発者モードを有効化しておく
- 対象のサーバーに移動後、サーバー名を右クリックして、メニューから「IDをコピー」を選択
- コピーした値をValue に貼り付けます
- 対象サーバーにサマリ投稿用のチャンネルを作成する
- Discordの開発者モードを有効化しておく
- 投稿用チャンネルに移動後、チャンネル名を右クリックして、メニューから「IDをコピー」を選択
- コピーした値をValue に貼り付けます
- GitHub のリポジトリで"Settings"タブを開き、左の"Actions"→"General"を開きます
- "Actions permissions"の"Allow all actions and reusable workflows"を選択して保存してください
これらの設定をすると、毎日午前 5 時に Discord の Public channel の要約結果が投稿されます。
手動で実行してみる場合には"Actions" タブを開き、左の"discord-summarizer"をクリックして、右の"Run workflow"をおしてください。