ChatGPTを利用して返信の内容を作成しMastodonに投稿するbotです。 botが動作するアカウントにメンションされた投稿に反応します。
- OpenAIにユーザー登録し、APIキーを生成してください。
- MastodonにBot用のアカウントを作成してください。
- MastodonにBotで利用するアプリを登録してください。[ユーザー設定] - [開発] - [新規アプリ] から登録できます。
- .env.sample を .env としてコピー、必要な情報を記載する
- docker compose を利用して Docker コンテナを起動する
$ docker compose build
$ docker compose up -d
- Node.jsをインストールしていない場合はインストールする
- .env.sample を .env としてコピー、必要な情報を記載する
- 必要ライブラリのインストール
$ npm install
- 実行
$ npm start
プログラムの実行後、任意のアカウントからBot用のアカウントに対してメンションしてください。
Botから返信の投稿が来れば成功です。
Botは通知を契機に動作します。
Mastodonの通知が遅れている場合、返信が投稿されるのも遅くなります。
パラメーター名 | 説明 |
---|---|
CLIENT_KEY | Mastodonに登録したアプリのクライアントキー |
CLIENT_SECRET | Mastodonに登録したアプリのクライアントシークレット |
ACCESS_TOKEN | Mastodonに登録したアプリのアクセストークン |
MASTODON_HOST | Mastodonサーバーのホスト名 (例: mstdn2.ht164.jp) |
BOT_ACCOUNT_NAME | Botに利用するMastodonアカウントの名前 (例: testbot) |
OPENAI_API_KEY | OpenAI のAPIキー |
CHATGPT_SYSTEM_CONTENT | ChatGPTを呼び出す際の前提として渡す情報。例えばどういう設定の人物か、どういう口調か、などを記載することができる |
TOKEN_LIMIT_PER_DAY | 1日で使用するトークン量の最大値。これを超えるとbotは反応しない |
MAX_USE_REPLY_HISTORY | ChatGPTを呼び出すときに渡す会話の履歴数 |