nakaoka3の技術ブログ

2023年中に52本なにか書きます

SlackにChatGPTをつないで遊んでみた

ChatGPTのAPIを使用してSlackのチャットボットを作成してみました。実用的な質問よりも独り言をつぶやいて反応をもらうような使い方が面白いと思いました。Slack App、Cloud Functions、ChatGPT APIを組み合わせて実装しています。

ChatGPTのAPIが公開されたので、なにかに使ってみたいと思い、使い慣れているSlackで、チャットボットを作って遊んで見ることにしました。

openai.com

個人用のSlackにbotを追加した様子

ただSlackとChatGPTをつなげるだけではつまらないので、Slack で渡したメッセージをそのままChatGPTに投げるのではなく、「○○という話し方で答えてください」というような文言を入れて個性を出してみました。

意図せずお嬢様口調になってしまっている

このようにアイコンや名前をつけたりすると、botに愛着が湧いてきそうです。ルンバに名前をつけたら愛着が湧くのと同じ現象でしょう。

SlackにChatGPTをつなげたらwebで使うよりも気軽にプログラミングなど実用的な質問するだろうと思っていました。実際は実用的な質問をするこよりも、独り言のようなことをつぶやいては反応をもらうという使い方が多かったです。

botに出勤の報告をしている様子

このデータを永続化したら自分の作業ログになるし、それを更に集めて要約したら日報や日記が出来上がりそうです。

独り言ではあるのだけど、反応があるのでつぶやきたくなります。ChatGPTにこういう効果があるとはボットを作って使うまでは考えていませんでした。なんでも実際に作ってみると意外な発見があります。

実装はざっくり言うと、Slack App にメンションをすると Slack API からCloud Functionsにリクエストが飛び、Cloud FunctionsからChatGPT API に問い合わせて返答を得て、Cloud Functions から Slack のAPIを叩いてチャンネルに投稿をしています。

この実装だと1回限りで文脈がリセットされて前回の会話を引き継げません。実用的な質問が少ない原因のひとつです。

それにしても1つのサーバーも建てずにこんなものが作れて遊べるのは本当に便利で面白いです。