ChatGPTMattermostChatbot

現行の OpenAI モデルで動くようにした Mattermost チャットボット

Mattermost chatbot updated for current OpenAI models

このプロジェクトは Elehiggle 氏の ChatGPTMattermostChatbot のフォークです。元のコードと README は Elehiggle 氏によるもの(MIT License)で、このリポジトリでは現行の OpenAI モデルへの対応、退役したモデルの整理、フォークから直接 Docker イメージを取得して動かせるようにする変更を加えています。

対応環境
Python 3.11 以降、または Docker
最新リリース
準備中
ライセンス
MIT
言語
Python
更新
2026-09-09
フォーク元
Elehiggle/ChatGPTMattermostChatbot

GitHub で見る

ChatGPTMattermostChatbot の構成図。Mattermost とボット、OpenAI API の間のメッセージの流れと、ボットの機能
Mattermost のメンション・DM をボットが受け取り、OpenAI API で応答する(図解)

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 の一覧を参照してください。