はじめに
去年度までS高等学校の校長をやっていたsifueといいます。現在はZEN大学(仮称・設置認可申請中)の教員予定者として設立準備などを行なっており、特に自分は情報系カリキュラムやクリエイティブ系カリキュラムの設計などを担当をしています。N高/S高と同じようにテクノロジーを駆使した多様性のある就職につながる新たな学びを設計できればと思っています。
このN/S高のアドベントカレンダーも2016年から8年目に突入して、非常に感慨深いななどと思っているわけなんですが、本記事では、自分が開発した、N/S高Slackや学園の教職員Slack、ZEN大学準備室のSlackなどで運用してきたChatGPT Slackボットとそこで面白かったベストユースケースのトップ3を紹介していきたいと思います。
開発したSlackボットの技術スタック
ソースコードはsifue/chatgpt-slackbotです。
2022年11月30日にChatGPTがリリースされてからまだ1年しか経っていない!ということのほうが衝撃ですが、このBotを作ったのはリリースされてから6日経った日にリリースされました。
Dockerを入れるだけで動くようにしてあるため、Dockerが動くVPS(一番安いものでOK)やコンテナホスティングサービス、社内で運用しているサーバーやRaspberry Piなどで動かすことを想定して開発されています。
内部的な技術としては
- Docker
- Python
- SQLite3
- OpenAI API
- Slack Bolt API (Socket Mode)
- DuckDuckGo Search Engine Results API
以上のものを組み合わせて作っています。基礎的な技術しか使っていませんがいろんな方に使って頂けているようで、54スターもいただくことができました。また個々人がアプリケーションをSlack内で作成して使うことを想定しているため、設定に手間のかかるスラッシュコマンドなどには対応していません。また、openaiライブラリを使っているため、ちょっといじればAzure APIなどで利用することも可能です。
どんな機能があるのか
以下のような機能があります。
- GPT-3.5 および GPT-4 モデルとの会話機能
- 複数の添付ファイルを含めた GPT-4V モデルとの会話機能
- Function Callingを使ったSlack検索およびWeb検索との統合した会話機能
- 会話履歴の管理機能
- ユーザーの発言分析機能
- チャンネルの内容分析機能
- Web検索の結果を踏まえて答える機能
- Slack検索の結果を踏まえて答える機能
- SQLite3による利用ログ機能
- 各種設定機能
- パブリックチャンネルのみで利用させる設定
- GPT-4を使わせない設定
- GPT-4Vを使わせない設定
- 1日の利用制限回数設定
- 1ユーザーが1リクエスト同時に行えない設定
- Dockerのコンテナ名にサフィックスを追加する設定
以上を提供しています。ChatGPTをSlackで利用すると
- 認証されたユーザーのみが利用できる
- 個々人の利用履歴が見れる
- ユースケースの共有がしやすい
というメリットがあるため、本当にSlackとChatGPTは非常に相性がいいなと感じています。
ベストユースケース
こんなChatGPT Slackボットなのですが、1年間で非常に沢山使ってもらいました。N/S高Slackの利用だけで、2万回も使っていただいたということになっていました。
ChatGPTは、アイディア出し、文書分析/作成/要約/整形、企画相談や外国語学習やプログラミングの支援などに向くというのは一般的に知られていますが、この記事では、この使い方は自身が良いな!と思ったもユースケースのベスト3を自身の独断と偏見で紹介したいと思います。
3位 つらい時の対処方法について聞く
プロンプト例:
- 彼女にフラれてしまいショックを受けています。どのようにすれば気持ちを落ち着けることができますか。
- ⚪︎⚪︎という失敗をしてしまいました。どうすればよいですか。
- 友達にひどいことを言われました。どうするのが良いですか。
このようなショックを受けることを相談するとChatGPTくんは、非常に丁寧な言葉で対処方法を教えてくれます。自分の心を落ち着かせ状況を確認するという用途にも、非常にChatGPTは有用なのだなと思わされました。特に若い世代は多感なのでこのような感情が制御できない時にChatGPTのサポートを得るというのは若い世代だからこその良い使い方だと感じました。
2位 毎日自己分析をしてもらう
このSlackボットには発言からその人の分析をしてくれる機能が入っています(!gpt-ua [@ユーザー名]
コマンドで利用可能)。
この機能を使って毎日自分自身の分析をしている人がおり、Slackという空間における自分自身の見え方がどのように変遷しているかを確認することで、自分自身が認知しにくい自分自身のことを理解するのに役立ているようでした。ChatGPTの普段は思い付かないような常に素晴らしい使い方だと思いました。
1位 発言を分析して褒めちぎってもらう
この使い方は上手いなと思ったベストは、チャンネル参加者を分析して褒めちぎり、祝福してくれるという使い方です。Function Callingから呼び出すSlack検索をうまく利用しています。上のスクリーンショットではチャンネルに参加するとボットからWelcomeメッセージが投稿されそれを起点にChatGPTのボットが動くようになっています。
プロンプト例:
- ⚪︎⚪︎さんの発言からどのようなことをしている人か教えてください。また内容からこの方を褒めちぎって、このチャンネルに参加したことを祝福してください。
とにかくChatGPTは褒めるのが上手いです。根拠がある状況で褒められると本当にそうなのかと思ってしまいます。この使い方をしていた方は生徒さんなのですがこんな使い方もあるのかと感心させられました。
なお、この動作は、サーバルbotといういいねの数を褒めてくれるボットの入室メッセージと組み合わせたものですが、個人がコマンドを打って褒めてもらうようにしてもいいと思います。ぜひこのChatGPT Slackbotを導入して試していただければと思います。
おわりに
ChatGPT Slackボットがリリースされた当時は本当に多くの人たちが使ってくれましたが、この1年で良くも悪くも大規模LLMが当たり前になり今は利用が落ち着いています。
プログラミング系の調べ物は学生なら無料で申請できるGitHub EducaionについてくるGitHub Copilot ChatがVSCodeの開いているタブを参照してくれて便利です。また、検索との統合であればBing Chat(今はCopilot)が優秀という現状があります。
また個人でChatGPT Plusを利用する人も増えて、ChatGPTの利用は、一部のアウトプットをしっかり出す方が主に積極的に利用するにとどまる傾向があるのかなと思っています。
ただはやり、ChatGPTをうまく活用できるかどうかでアウトプットの質も量も大きく変わってくるため、今後もLLMの良い使い方などや様々なアプリケーションをどんどん紹介したり、作っていければと思っています。
なおZEN大学ではこのようなAIを利用した様々な取り組みにチャレンジしていく予定ですので、興味のある方は2025年開校できることになりましたらぜひよろしくお願いします。