こんにちは、 Qiita株式会社のエンジニアの @tomoasleep です。
Qiita 株式会社では ChatGPT API を使った bot を Slack 上で動かしています。
同じような事例はいくつもあるのですが、Qiita社内でかれこれ 1ヶ月半以上稼働して、「多くのメンバーに ChatGPT をハードル低く提供する」「社内で活用法を考えたり、共有したりしやすい」「楽しい」ということで、 ChatGPT 活用を社内に浸透させるには Slack での bot が本当にめちゃくちゃ最高 なので、実例を交えて布教していきたいと思います。
Qiita での Slack bot の設定
(※ もっと導入しやすい例は、他にいくらでもあるのでここは参考程度に見てください)
Qiita 社内では Slack bot として Ruboty を利用しているため、 ruboty-openai_chat という ChatGPT を利用する Ruboty プラグインを作成しました。
ruboty-openai_chat では OpenAI の Chat completion API を利用しています。
この API に以下のような会話データを送信し、その続きの返答内容を生成、という形でメッセージを返答しています。
The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.
The AI assistant's name is (bot 名). (ユーザーが記録させた設定文)
Human: こんにちは。あなたは誰ですか?
AI: 私は OpenAI 製の AI アシスタントの (bot 名) です。なにかお手伝いできることはありますか?
Human: (過去一定時間の、同一チャンネルでの bot との会話)
AI: (過去一定時間の、同一チャンネルでの bot との会話)
Human: (Slack のメッセージ)
AI:
(※イメージのために平文にしていますが、実際には各会話は構造化されたデータとして送信しています。)
こうして、ChatGPT API の力を借りて、いい感じに返答してくれる Qiitan が完成しました
Qiita 社内での Slack bot (Qiitan) の遊ばれ方
こうして完成した Qiitan を (利用ルールや注意事項を説明した上で) Slack に放し飼いにしたわけですが、割と様々な用途で社員が遊んでくれるようになりました。
単に遊ぶだけではなく、色々な用途で実験されて、それが社内で自然に広まるようにもなりました。
翻訳に使ったり、
新しいことを学ぶときの参考相手に使ったり、
案出しの壁打ちに使ったり、
要約を作ったり、
書いた記事のタグ候補を考えるのに使ったり、
歌を作ったり(?)
...などなど、様々な用途で利用されるようになりました。(他にも色々な用途で試されています)
Slack 上で動かすことで、自然と ChatGPT の活用法が共有されるように
Slack bot の効果として大きいのは ChatGPT との対話が Slack 上で行われることで、 ChatGPT への色々なプロンプトの投げ方が自然と社内で共有される ことです。
これにより、社内で (dev, business を跨いで) ChatGPT の利用法が広まり、様々な利用方法が活発的に模索されていくようになりました。
(なおかつ、API 経由であるため、基本的に OpenAI 側に二次利用されないのも嬉しいところです。)
社内ガイドライン、Template Repository の整備など、社内での AI サービスの利用を促進
また、Qiita 社では、社内で ChatGPT 等の AI サービスのガイドラインの整備も行い、 個人情報は送信しない、などの利用ルールを定めています。
他にも、Slack bot で社内の利用が活発化されたのを皮切りに、 ChatGPT などの生成系 AI に関する勉強会、活用アイデアの収集、Template Repository の配布なども行い、社内での AI サービスの利用、サービスへの活用を促進しています。
ChatGPT API はかなり安価
ChatGPT API (gpt-3.5-turbo
モデル) は有料の従量課金で、 $0.002/1K tokens の使用料がかかります。 (トークン数の算出は複雑なのですが、日本語で大まかに 1000 文字で1円弱程度です。)
社内で bot としている分には非常に安価で済みます。
まとめ
ChatGPT を Slack bot として動かすのは、(導入したときは遊び半分で正直そこまで考えてなかったのですが) 以下の点で非常に良い選択肢でした。
- 利用するハードルが非常に低い (また、API 経由なので学習にも使われない)
- 利用事例が、社内で自然と広まり、社内での活用が盛り上がりやすい
- (Chatbot を既に飼っている会社なら) 話してくれるだけで楽しい
社内で ChatGPT の活用を考えていく際には、まず初手 Slack bot 導入はおすすめです。
(実装に関しては、Qiita 社のはやや特殊例なので、他を参考にしてください)
おまけ: ChatGPT 以前の例
実は ChatGPT API リリースの前 (gpt-3.5-turbo
が出る前) も text-davinci-003
モデルを利用した Slack bot を動かしていました。 (秘密情報は流さないこと前提で)
ただ、自然な対話をしてくれるような学習はしていないので、なんというか不思議な返答をしがちだったのと、当時の規約的に秘密情報は流せないので、大喜利用途であまり活用などには繋がらない感じでした。
それ以前にも、会話できる Chatbot にしようという試みはありました。
こんな感じの返し方でした。
おまけ2: Chatbot の実装例を紹介してもらった
Slack の @seratch さんから、 Slack bot の実装例を紹介してもらいました!
Ruboty プラグインだったり、実装大変そう…、っていう方は試してみても良いかもしれません
自分で作りたくないという方は、私が GitHub で公開しているこちらのアプリを試してみてください。インストールして API キー設定するだけで使えるライブデモアプリもあります: https://t.co/w7ASwLOc26 #SlackDevJP
— Kazuhiro Sera (瀬良) (@seratch_ja) April 21, 2023