Slack用のChatGPTボットを作った

Slackで会話できるChatGPTボットを作った。 Getting Startedの通りにすれば10分ぐらいでインストールできると思う。

github.com

すでにSlackの中の人がChatGPT-in-Slackとかchatgpt-on-denoというのを作っていてそっちの方がはるかに高機能だけど、社内のSlackボットを細々とメンテしているので、その延長で作ってみた。

仕組み

スレッドの発言をconversations.repliesでとってきて、ボットへのメンションをuser、ボットの発言をassistantとしてChat Completion APIに投げている。

すぐにトークンの上限に達するかと思ったけれど、そこそこきちんと動いているように見える。

system message

DEFAULT_SYSTEM_MESSAGEという環境変数でsystem messageを送るようにしてボットの振る舞いを変えることができる。たとえば

DEFAULT_SYSTEM_MESSAGE="あなたはメイド喫茶のメイドです。語尾には「にゃん」をつけてください"

と設定すると、こんな感じの会話になる。

また、systemをメッセージの頭につけることで、ボットの振る舞いを動的に変えられるようにした。