![Share on Facebook Facebook](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/48x48/facebook.png?resize=48%2C48&ssl=1)
![Share on Twitter twitter](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/48x48/twitter.png?resize=48%2C48&ssl=1)
![Share on Reddit reddit](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/48x48/reddit.png?resize=48%2C48&ssl=1)
![Pin it with Pinterest pinterest](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/48x48/pinterest.png?resize=48%2C48&ssl=1)
![Share on Linkedin linkedin](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/48x48/linkedin.png?resize=48%2C48&ssl=1)
![Share by email mail](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/48x48/mail.png?resize=48%2C48&ssl=1)
![Share on Facebook Facebook](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/96x96/facebook.png?resize=48%2C48&ssl=1)
![Share on Twitter twitter](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/96x96/twitter.png?resize=48%2C48&ssl=1)
![Share on Reddit reddit](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/96x96/reddit.png?resize=48%2C48&ssl=1)
![Pin it with Pinterest pinterest](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/96x96/pinterest.png?resize=48%2C48&ssl=1)
![Share on Linkedin linkedin](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/96x96/linkedin.png?resize=48%2C48&ssl=1)
![Share by email mail](https://i0.wp.com/ict-worker.com/wp-content/plugins/social-media-feather/synved-social/addons/extra-icons/image/social/clearslate/96x96/mail.png?resize=48%2C48&ssl=1)
PC のターミナルや、Google Colab や Jupyter のノートブックで、GPT-3.5-turbo と対話するのもそれはそれで楽しいですが、やはり使いやすいフロント実装があった方が便利です。
自分用の場合はもちろん、社内向けは顧客向けにデモや PoC (Proof of Concept)を実現するときにも GUI は必要ですね。
そんな中で、非常に実装が簡単なのが Slack Bot なので、今回は Slack Bot を、手元の PC で動作させてみます。手元 PC にあればどのサーバーに deploy するかといったことも考えなくてすみますし、デモを提供したときに token を使われすぎないように素早くシャットダウンできる点が便利です。
Slack の API を準備する
新しいアプリを作成する
上記 URL にアクセスし、Create App ボタンをクリックして新しいアプリを作成します。
ワークスペースと、アプリの名称を決定します。
権限を設定する
左メニューの OAuth & Permissions から権限を設定します。
右Pane 中程の、 Add an OAuth Scope ボタンから OAuth Scope を追加します。今回は、 app_mentions:read と chat:write だけを許可します。メンション以外のメッセージも処理したい場合は適切な権限を追加します。
アプリをインストールする
左メニューのInstall App からアプリをワークスペースにインストールします。さらに、OAuth Token が表示されるので、それをコピーして控えておきます(xoxb-で始まる文字列)。
Socket Mode を有効にする
今回はSocket Mode で動作させるので、左メニューの Socket Mode を選択します。続いて、 Enable Socket Mode をオンにします。
App Level Token を取得する
左メニューの Basic Information から App-Level Tokens を表示し、Generate Token and Scopes ボタンをクリックして、App Token を作成します。