Chatwoot Captain を、カスタムの OpenAI 互換エンドポイントで動かす。
Updated 2026-07-30
セルフホストの Chatwoot は、Super Admin のアプリ設定で Captain を構成します。CAPTAIN_OPEN_AI_ENDPOINT、CAPTAIN_OPEN_AI_API_KEY、CAPTAIN_OPEN_AI_MODEL の3つです。エンドポイントを https://api.apisrouter.com に向ければ(/v1 は Chatwoot 自身が付加します)、サポート AI がキー1つを通じて、カタログの任意のモデルで回答するようになります。
早わかり: Super Admin の3つの Captain 設定。
現行のセルフホスト Chatwoot では、Captain の LLM 設定は .env の変数ではなく、インストール設定です。同梱の .env.example もそのことを明示しており、Super Admin の App Configs、Captain を見るよう案内しています。重要な値は3つです。CAPTAIN_OPEN_AI_API_KEY にはゲートウェイのキーを、CAPTAIN_OPEN_AI_MODEL にはモデル id を、CAPTAIN_OPEN_AI_ENDPOINT にはエンドポイントのホストを入れます。 エンドポイントの値には1つ鋭い落とし穴があります。/v1 のサフィックスを付けずに与えてください。Chatwoot の初期化処理は、末尾のスラッシュを取り除いて /v1 を付加することで、自分自身で API のベースを構築します。設定自体の説明にも、デフォルトが https://api.openai.com/ という、まさにその形で示されています。APIsRouter の場合は https://api.apisrouter.com と入力し、Chatwoot に https://api.apisrouter.com/v1 を導出させてください。これらの設定はアプリの起動時に読み込まれるため、変更後は Chatwoot を再起動してください。
CAPTAIN_OPEN_AI_API_KEY: sk-YOUR-APISROUTER-KEY
CAPTAIN_OPEN_AI_MODEL: claude-haiku-4-5-20251001
CAPTAIN_OPEN_AI_ENDPOINT: https://api.apisrouter.com
(no /v1 -- Chatwoot appends it)
then restart the Chatwoot processesCaptain が、設定されたモデルで何をするか。
Chatwoot(GitHub 上でおよそ34K スター)は、主要なオープンソースのカスタマーサポートプラットフォームであり、Captain はその AI レイヤーです。ヘルプセンターの記事や FAQ から顧客との会話に回答する AI エージェント、人間のエージェント向けに返信を下書きしスレッドを要約するコパイロット、そしてその両方を支える文書グラウンディングの知識機能です。Captain が利用可能なセルフホストのインストールでは、そのすべてが上記で設定したモデルを通じて動作します。 内部では、Chatwoot は起動時に一度、エージェント SDK を設定します。キー、導出された API ベース、そしてデフォルトのモデルです。すべての Captain の機能は、その後、標準的なチャット補完をそのベース URL に対して話し、モデル id はそのままの文字列として運ばれます。Chatwoot はモデル名のプレフィックス(claude-、gemini-、deepseek-)のマップを保持していますが、それはルーティングのためではなくテレメトリのラベル付けのために使われます。したがって Claude や DeepSeek の id を CAPTAIN_OPEN_AI_MODEL に設定しても、他のどの文字列とも同様に、設定したエンドポイントへ向かいます。 サポートのトラフィックには独特のコストプロファイルがあります。多くの会話、短いターン、そして検索された記事から組み立てられるグラウンディングされた回答です。それが、重要な数字を会話あたりのコストにし、それは検索された文脈からの入力トークンによって支配されます。速い id はアシスタント層をうまく処理し、コパイロットにより良い下書きを書かせたい場合のエスカレーションは、設定1つの変更で済みます。
フルセットアップと、起動時に関わる細部。
あなたのインストールの Super Admin コンソールを開き、App Configs に進んで Captain を選び、3つの値を入力してください。あなたの Chatwoot がエンドポイント設定より前のバージョンである場合(それは2025年半ばの v4.4 時代に登場しました)、先にアップグレードしてください。古いバージョンには、キーとモデルだけが存在し、エンドポイントはハードコードされていました。 これらの設定はアプリケーションの起動時に初期化処理によって読み込まれるため、変更が反映されるのは web とワーカープロセスを再起動した後です。それはまた、間違った値が保存時に失敗しないことも意味します。それは再起動後の最初の Captain リクエストで失敗します。これは、間違った場所をデバッグしてしまう前に知っておく価値があります。 Captain にはエンベディング側もあります。CAPTAIN_EMBEDDING_MODEL(デフォルトは text-embedding-3-small)が、あなたのヘルプセンターのコンテンツに対する文書検索を動かしており、同じ設定済みのエンドポイントに対して解決されます。エンドポイントをゲートウェイに向け直すなら、そこに設定するエンベディング id をエンドポイントが実際に提供しているか確認してください。そうでなければ、文書機能は既存の設定のままにしておき、切り替え後に別途検証してください。
# Chatwoot will call <endpoint>/v1/chat/completions
curl -s https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer $APISROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-haiku-4-5-20251001",
"messages":[{"role":"user","content":"ping"}]}'サポート自動化のためのモデル選び。
効果のある評価ループはこうです。1週間を速い id で運用し、利用状況の数字をエクスポートし、コパイロットの使用が多いチームをより強力な id で運用し、感覚ではなく下書きの採用率を比較する。両方の候補は同じキーを通じて課金されるため、比較結果は価格付きで手に入ります。
- AI エージェント層はボリューム作業です。検索された記事に基づくグラウンディングされた回答が、月に何千もの会話を処理します。claude-haiku-4-5-20251001、gpt-5.4-mini、gemini-3.5-flash は、グラウンディングの規律を失うことなく、会話あたりのコストを一定に保ちます。
- コパイロット層はスレッド全体を読み、人間向けの返信を下書きします。トーンと判断力がものを言う場面です。下書きの質がエージェントの生産性を左右するとき、claude-sonnet-4-6 が自然な次のステップです。
- 多言語のサポートデスクは、実際の言語構成で deepseek-v4-pro と gemini-3.5-flash をテストすべきです。グラウンディングされた回答の質は、英語のベンチマークが示唆する以上に言語間で変動します。
- 会話あたりのコストは理論ではなく測定可能です。会話あたりのトークン数×月間の会話数を、利用ログからそのまま算出できます。
- 1つのモデルがインストールごとにすべての Captain 機能を担うため、主要なワークロードに合わせて選び、1週間の実際の利用状況を読んでから見直してください。
従量課金 · 公式価格より安い
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| モデル | 公式価格 | 当社価格 |
|---|---|---|
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| GPT-5.4 mini | $0.75 / $4.50 per M | $0.60 / $3.60 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
Chatwoot Captain に特有の失敗パターン。
/v1 の二重サフィックスが定番です。Chatwoot は入力した値に /v1 を付加するため、https://api.apisrouter.com/v1 を貼り付けると /v1/v1/chat/completions に対するリクエストが発生し、ゲートウェイで 404 になります。ホストは /v1 なしで入力してください。 無視されたように見える設定変更は、再起動のルールです。エージェント SDK は起動時に一度、インストール設定から構成されます。Super Admin でそれらを編集しても再起動しなければ、実行中のすべてのプロセスに古い値が残ります。 古いガイドは間違った場所を指しています。以前の Chatwoot バージョンのチュートリアルは、環境変数やレガシーな OpenAI インテグレーションを通じて OPENAI_API_KEY を設定します。現行バージョンでは、Super Admin の Captain 設定が正しい場所であり、.env.example にもそう明記されています。 切り替え後、Captain の最初の返信での model-not-found は、CAPTAIN_OPEN_AI_MODEL の id のタイプミスです。ゲートウェイの /v1/models 一覧が正しい綴りの根拠です。認証エラーは、キーとエンドポイントの設定が対応していないことを意味します。そして、チャットの回答は問題ないのに記事検索や文書グラウンディングが劣化する場合は、同じエンドポイントに対して解決される別のモデルであるエンベディング設定を確認してください。
ゲートウェイ経由で Chatwoot Captain を使うのは誰か。
- セルフホストのサポートチームで、別のベンダーアカウントや請求関係を持つことなく、コパイロットで Claude 品質の下書きを使いたい人。
- AI エージェントがほとんどの会話に回答する高ボリュームなデスクで、会話あたりのコストが自動化が採算に合うかどうかを決めます。速いカタログ id がその数字を正直に保ちます。
- ブランドや地域ごとに Chatwoot を1つずつ運用するチームで、それぞれ独自のキーで計測し、サポート AI のコストがブランドごとに自然に報告される人。
- 実際のトラフィックでサポートモデルを比較するオペレーターで、各候補は移行ではなく1つの設定値と再起動で済む場合。
- 特定ベンダーの請求手段にアクセスできない開発者。チャージ制でカード不要のアクセスなら、プロバイダーごとのサインアップという依存を取り除けます。
エンドポイントを検証し、最初の会話をデバッグする。
まず Chatwoot の外側で検証してください。あなたのキーでモデルを一覧し、CAPTAIN_OPEN_AI_MODEL に設定した正確な id に対して1回チャット補完を実行します。それが通れば、ゲートウェイ側は証明済みであり、それ以外はすべて Chatwoot 側の問題です。 次に再起動し、最初の Captain とのやり取りを見てください。認証の失敗はキー設定を、model-not-found はモデル設定を、404 形状のエラーはエンドポイント設定に貼り付けられた /v1 を指しています。Captain の機能が単に現れない場合、それはあなたのインストールのティアにおける利用可否とライセンスの問題であり、エンドポイント設定の問題ではありません。 会話が流れ始めたら、APIsRouter コンソールがリクエストごとのモデル、トークン数、支出を表示します。サポート AI は毎月積み重なる予算項目であり、インストールごとに1つのキーがあれば、利用ログが、経理チームがずっと求めてきたデスクごとのコストレポートになります。
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50よくある質問
Chatwoot のどの設定が、Captain をカスタムの OpenAI 互換エンドポイントに向けますか?
CAPTAIN_OPEN_AI_ENDPOINT です。Super Admin コンソールの App Configs、Captain の中で、CAPTAIN_OPEN_AI_API_KEY と CAPTAIN_OPEN_AI_MODEL と並んで設定します。現行バージョンでは、これらは .env 変数ではなくインストール設定です。
エンドポイントには /v1 を含めるべきですか?
いいえ。Chatwoot は末尾のスラッシュを取り除き、自分自身で /v1 を付加して API ベースを構築します。https://api.apisrouter.com と入力すれば Chatwoot が https://api.apisrouter.com/v1 を導出します。自分で /v1 を貼り付けると、パスが二重になり 404 が発生します。
Captain は Claude や DeepSeek のモデルで動きますか?
はい。CAPTAIN_OPEN_AI_MODEL はそのままの文字列として設定済みのエンドポイントに運ばれます。Chatwoot のプロバイダープレフィックスのマップはテレメトリのラベル付けだけに使われます。claude-haiku-4-5-20251001 や deepseek-v4-pro を含め、ゲートウェイが提供するどの id でも動作します。
設定を変更したのに反映されないのはなぜですか?
Captain の LLM 設定はアプリケーションの起動時に読み込まれます。Super Admin で設定を編集した後は、Chatwoot の web とワーカープロセスを再起動してください。実行中のプロセスは、それまで古い値を保持し続けます。
エンドポイント設定は Captain の文書検索にも影響しますか?
エンベディングモデル(CAPTAIN_EMBEDDING_MODEL、デフォルトは text-embedding-3-small)は、同じエンドポイントに対して解決されます。設定するエンベディング id をエンドポイントが提供しているか確認するか、切り替え後に文書機能を別途検証してください。
どのバージョンの Chatwoot が必要ですか?
エンドポイント設定は、2025年半ばの v4.4 時代に登場しました。それより前のバージョンは、キーとモデルだけを公開し、エンドポイントはハードコードされているため、Captain をゲートウェイに向ける前にアップグレードしてください。