ChatGPTMattermostChatbot
現行の OpenAI モデルで動くようにした Mattermost チャットボット
Mattermost chatbot updated for current OpenAI models
このプロジェクトは Elehiggle 氏の ChatGPTMattermostChatbot のフォークです。元のコードと README は Elehiggle 氏によるもの(MIT License)で、このリポジトリでは現行の OpenAI モデルへの対応、退役したモデルの整理、フォークから直接 Docker イメージを取得して動かせるようにする変更を加えています。
ChatGPTMattermostChatbot は、OpenAI API を使って Mattermost のメンションやダイレクトメッセージに応答するチャットボットです。Elehiggle 氏の同名プロジェクトのフォークで、元のコードと README は Elehiggle 氏によるものです。このリポジトリでは、現行の OpenAI モデル(GPT-5.6 ファミリー、GPT-5、GPT-4.1、o3 / o4-mini など)と gpt-image-2.5 系の画像生成に合わせてコードと README を更新し、退役したモデルやエンドポイントの対応を整理しました。あわせて、フォークから直接 Docker イメージを取得して動かせるように、Dockerfile・docker-compose.yml・CI ワークフローを整えています。
Mattermost の公式 AI プラグインと違い、サーバー本体への直接アクセスは必要ありません。ボットアカウントのトークンと OpenAI API キーがあれば、Docker コンテナとして動かせます。URL や添付ファイルの内容の読み取り、YouTube の字幕取得、画像の生成やカスタム絵文字の作成といった機能を、スレッド内の会話の文脈を保ちながら使えます。
特徴
- ボットのユーザー名へのメンションとダイレクトメッセージに応答し、スレッド内では会話の文脈を保持します。処理中は入力中インジケーターを送ります
- メッセージの添付ファイルや本文中の URL から画像・PDF・その他のファイルの内容を取り出して回答に使います。FlareSolverr を設定すると JavaScript や CAPTCHA のあるページにも対応します
- YouTube 動画の字幕に加えてタイトル・説明・投稿者を取得し、要約に使えます
- 関数呼び出しによる画像生成(既定は gpt-image-2.5-flare、
IMAGE_MODELで変更可)、Vision API による画像の説明、画像 URL からのカスタム絵文字作成に対応します - 既定モデルは gpt-5.6-terra。
REASONING_EFFORTとVERBOSITYで推論の深さと回答の詳しさを調整でき、GPT-5.4 以降では tools と reasoning を併用するため自動的に Responses API に切り替えます docker compose up -d --buildか、フォークから公開しているghcr.io/shunnag/chatgptmattermostchatbot:latestで起動できます。CI は push ごとに amd64 / arm64 のマルチアーキテクチャイメージをビルドしますAI_API_BASEURLを指定すれば OpenAI 互換のエンドポイントにも向けられます
対応環境と入手方法
Python 3.11 以降、または Docker が動くサーバーで動作します。CI は master への push ごとに linux/amd64 と linux/arm64 のイメージをビルドし、ghcr.io に公開しています。
Docker Compose(推奨)
git clone https://github.com/shunnag/ChatGPTMattermostChatbot.git
cd ChatGPTMattermostChatbot
cp .env.example .env # .env にキーを設定する
docker compose up -d --build
docker compose logs -f
公開済みイメージを使う
docker run -d --name chatbotgpt \
-e AI_API_KEY="your_ai_api_key" \
-e AI_MODEL="gpt-5.6-terra" \
-e REASONING_EFFORT="medium" \
-e VERBOSITY="medium" \
-e IMAGE_MODEL="gpt-image-2.5-flare" \
-e MATTERMOST_URL="mattermostinstance.example.com" \
-e MATTERMOST_TOKEN="your_mattermost_token" \
-e MAX_TOKENS="16384" \
ghcr.io/shunnag/chatgptmattermostchatbot:latest
Python で直接動かす
pip3 install -r requirements.txt
python3 chatbot.py
AI_API_KEY、MATTERMOST_URL、MATTERMOST_TOKEN(またはボット用ユーザーのユーザー名とパスワード)を環境変数で指定します。ボットアカウントはチームと監視したいチャンネルに追加しておく必要があります。その他の設定項目は README の一覧を参照してください。