ChatGPTとSlackで会話してみた
ChatGPTとSlackで会話できるようにインテグレートしてみました。 久しぶりに話しかけると1メンションにつき2,3個回答が返ってくることもありますが(バグってる)、まぁBotが寂しかったんでしょうきっとということであまり気にしないことにしています。
アーキテクチャ
glitchとは
Node.jsを使ったアプリケーションを簡単に公開できる神サービスです。free Project Hoursの範囲内であれば無料でアプリケーションを公開できます。
glitch側の準備 プロジェクトの作成
glitchにサインインして、New Projectを作成しましょう。 glitchではgithubのリポジトリをまるっとimportできる神機能があるので、私の公開している以下のリポジトリをimportしてください。
importが完了したら.envファイルを編集する必要があります。
.envファイルにはSlack側の設定とChatGPT側の設定をそれぞれ記載する必要があります。これらの設定の値はこの記事の続きの設定を行なっていく中で入手できますので、.env画面を開きつつ、次の設定に移ります。
ChatGPTのAPIキーの取得
ChatGPTとAPIを通じてやり取りするために、APIキーを取得します。
openAIにサインアップし、APIプラットフォームにアクセスします。
右上のアイコンをクリックして出てきたメニューから「View API Keys」をクリックしてAPIキーの管理画面を開き、好きな名前でAPIキーを作ります。 生成されたAPIキーをglitchの.envファイルの「CHAT_GPT_TOKEN」の値にセットしてください。
ChatGPT側の作業は以上です。
Slack Botの作成
SlackAPIにアクセスします。
Unlock your productivity potential with Slack Platform | Slack
「Create New App」を押して新しいアプリをscratchで作成します。
AppNameは適当に決めて、workspaceはBotを動かしたいSlackのワークスペースを選んでください。
OKを押すと、Basic Informationの画面が開きます。
「Add features and functionality」を開いて、Permissionsを選択してください。
開いた画面のScopesでAdd an OAuth Scopeボタンを押して、以下のスコープを追加してください。
次に、「OAuth Tokens for Your Workspace」のInstall to Workspaceボタンを押して、ワークスペースにBotをインストールしてください。この時点でSlackの左メニューのAppにあなたが作成したBotが追加されます。
Botが追加されると、BotUser OAuth TokenにTokenが入りますので、この内容をコピーしてGlitchのSLACK_BOT_TOKENの値に設定してください。
Basic Information画面に戻り、Add features and functionalityからEvent Subscriptionsを選択してください。
Enable EventsをONに変えると、以下のような画面が出てきます。
この画面の「Subscribe to bot events」を開き、以下の写真のように設定してください。
設定したらRequest URLに以下の内容を入力してください。これはBotがメンションされた際にglitch上に作成したプロジェクトが呼び出されるようにする設定です。
https://<glitchのプロジェクト名>.glitch.me/slack/events
ここまでの変更を保存すると、Botを再度ワークスペースにインストールするように促されるので、再インストールしてください。
ここまできたらSlackを起動し、左のAppから自身が追加したBotを開き、アイコンをクリックして以下の画面を開いてください。
メンバーIDの値をコピーしてglitchの.envファイルのBOT _USER_IDの値にセットしてください。
glitchの.envファイルの変更を保存し、セットアップは完了です。
使ってみる
こんな感じで会話できるようになりました。