Faites tourner Chatwoot Captain sur un endpoint compatible OpenAI personnalisé.
Updated 2026-07-30
Chatwoot auto-hébergé configure Captain via les app configs de Super Admin : CAPTAIN_OPEN_AI_ENDPOINT, CAPTAIN_OPEN_AI_API_KEY et CAPTAIN_OPEN_AI_MODEL. Pointez l'endpoint vers https://api.apisrouter.com (Chatwoot ajoute /v1 lui-même) et votre IA de support répond sur n'importe quel modèle du catalogue via une seule clé.
Réponse rapide : trois configs Captain dans Super Admin.
Sur les versions actuelles de Chatwoot auto-hébergé, les réglages LLM de Captain sont des configs d'installation, pas des variables .env ; le .env.example fourni le dit explicitement et vous renvoie vers Super Admin, App Configs, Captain. Trois valeurs comptent : CAPTAIN_OPEN_AI_API_KEY prend la clé de passerelle, CAPTAIN_OPEN_AI_MODEL prend l'id de modèle, et CAPTAIN_OPEN_AI_ENDPOINT prend l'hôte de l'endpoint. La valeur d'endpoint a un piège pointu : donnez-la sans le suffixe /v1. L'initialiseur de Chatwoot construit lui-même la base API en retirant une barre oblique finale et en ajoutant /v1, et la description propre de la config montre le défaut comme https://api.openai.com/ dans exactement cette forme. Pour APIsRouter, saisissez https://api.apisrouter.com et laissez Chatwoot dériver https://api.apisrouter.com/v1. Ces configs sont lues au démarrage de l'app, donc redémarrez Chatwoot après les avoir changées.
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 processesCe que Captain fait avec le modèle configuré.
Chatwoot (environ 34 000 étoiles sur GitHub) est la principale plateforme open source de support client, et Captain en est la couche IA : un agent IA qui répond aux conversations clients à partir de vos articles de centre d'aide et FAQ, un copilote qui rédige des réponses et résume les fils pour les agents humains, et des fonctionnalités de connaissance ancrées dans les documents derrière les deux. Sur les installations auto-hébergées où Captain est disponible, tout cela tourne via le modèle configuré ci-dessus. Sous le capot, Chatwoot configure son SDK d'agents une seule fois au démarrage : la clé, la base API dérivée, et le modèle par défaut. Chaque fonctionnalité de Captain parle alors des chat completions standard à cette URL de base, et l'id de modèle voyage comme une simple chaîne. Chatwoot garde bien une carte de préfixes de nom de modèle (claude-, gemini-, deepseek-) mais l'utilise pour l'étiquetage de télémétrie, pas le routage, donc un id Claude ou DeepSeek réglé comme CAPTAIN_OPEN_AI_MODEL va quand même vers votre endpoint configuré comme n'importe quelle autre chaîne. Le trafic de support a un profil de coût distinctif : de nombreuses conversations, des tours courts, et des réponses ancrées assemblées à partir d'articles récupérés. Cela fait du coût par conversation le chiffre qui compte, et il est dominé par les tokens d'entrée issus du contexte récupéré. Un id rapide gère bien le niveau assistant, avec une escalade vers un id plus puissant qui n'est qu'un changement de config quand vous voulez que le copilote rédige de meilleurs brouillons.
Configuration complète et le détail au démarrage.
Ouvrez la console Super Admin sur votre installation, allez dans App Configs et sélectionnez Captain, puis remplissez les trois valeurs. Si votre Chatwoot précède la config d'endpoint (elle est arrivée à l'ère v4.4 mi-2025), mettez d'abord à niveau ; sur les versions plus anciennes, seules la clé et le modèle existaient et l'endpoint était codé en dur. Comme l'initialiseur lit ces configs pendant le démarrage de l'application, les changements prennent effet après un redémarrage des processus web et worker. Cela signifie aussi qu'une valeur erronée n'échoue pas au moment de l'enregistrement ; elle échoue à la première requête de Captain après le redémarrage, ce qui vaut la peine d'être su avant de déboguer au mauvais endroit. Captain a aussi un côté embedding : CAPTAIN_EMBEDDING_MODEL (défaut text-embedding-3-small) alimente la recherche de documents sur le contenu de votre centre d'aide, et se résout contre le même endpoint configuré. Si vous repointez l'endpoint vers une passerelle, confirmez que l'id d'embedding que vous y configurez est bien un id que l'endpoint sert réellement ; sinon laissez les fonctionnalités de documents sur leur configuration existante et validez-les séparément après le changement.
# 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"}]}'Choisir un modèle pour l'automatisation du support.
La boucle d'évaluation qui fonctionne : faites tourner une semaine sur un id rapide, exportez les chiffres d'usage, puis faites tourner les équipes à forte utilisation du copilote sur un id plus puissant et comparez le taux d'acceptation des brouillons plutôt que le ressenti. Les deux candidats facturent via la même clé, donc la comparaison arrive déjà chiffrée.
- Le niveau agent IA est un travail de volume : des réponses ancrées sur des articles récupérés, des milliers de conversations par mois. claude-haiku-4-5-20251001, gpt-5.4-mini et gemini-3.5-flash maintiennent le coût par conversation stable sans perdre la discipline d'ancrage.
- Le niveau copilote lit des fils entiers et rédige des réponses pour les humains, là où le ton et le jugement se montrent. claude-sonnet-4-6 est la montée en gamme naturelle quand la qualité des brouillons pilote la productivité des agents.
- Les services de support multilingues devraient tester deepseek-v4-pro et gemini-3.5-flash sur leur véritable mélange de langues ; la qualité des réponses ancrées varie plus selon les langues que ne le suggèrent les benchmarks en anglais.
- Le coût par conversation est mesurable, pas théorique : tokens par conversation fois conversations par mois, directement issu du journal d'usage.
- Un seul modèle sert toutes les fonctionnalités de Captain par installation, donc choisissez pour votre charge de travail dominante et révisez après avoir lu une semaine d'usage réel.
Paiement à l'usage · en dessous du tarif officiel
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Modèle | Prix officiel | Notre prix |
|---|---|---|
| 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 |
Modes d'échec spécifiques à Chatwoot Captain.
Le double suffixe /v1 est le grand classique. Comme Chatwoot ajoute /v1 à ce que vous saisissez, coller https://api.apisrouter.com/v1 produit des requêtes contre /v1/v1/chat/completions, qui font 404 à la passerelle. Saisissez l'hôte sans /v1. Les changements de config qui semblent ignorés relèvent de la règle du redémarrage. Le SDK d'agents est configuré une seule fois au démarrage à partir des configs d'installation ; les éditer dans Super Admin sans redémarrer laisse les anciennes valeurs actives dans chaque processus en cours. Les vieux guides pointent vers la mauvaise surface. Les tutoriels de versions antérieures de Chatwoot configurent OPENAI_API_KEY via des variables d'environnement ou l'intégration OpenAI héritée ; sur les versions actuelles, les configs Captain dans Super Admin sont la surface, et le .env.example le dit en toutes lettres. Model-not-found sur la première réponse de Captain après un changement est une faute de frappe dans l'id de CAPTAIN_OPEN_AI_MODEL ; le listing /v1/models de la passerelle fait autorité sur l'orthographe. Les erreurs d'authentification signifient que les configs de clé et d'endpoint ne vont pas ensemble. Et si la recherche d'articles ou l'ancrage documentaire se dégrade pendant que le chat répond bien, regardez la config d'embedding, qui est un modèle séparé se résolvant contre le même endpoint.
Qui route Chatwoot Captain via une passerelle.
- Les équipes de support auto-hébergées qui veulent une rédaction de qualité Claude dans le copilote sans compte fournisseur séparé ni relation de facturation.
- Les services à haut volume où l'agent IA répond à la plupart des conversations, et où le coût par conversation décide si l'automatisation est rentable ; les ids rapides du catalogue gardent ce chiffre honnête.
- Les équipes qui font tourner un Chatwoot par marque ou région, mesurant chaque installation avec sa propre clé pour que le coût de l'IA de support se rapporte de lui-même par marque.
- Les opérateurs qui comparent des modèles de support sur du trafic réel : chaque candidat n'est qu'une valeur de config et un redémarrage, pas une migration.
- Les développeurs sans accès à la facturation d'un fournisseur donné. Un accès basé sur la recharge, sans exigence de carte, supprime la dépendance à une inscription par fournisseur.
Vérifiez l'endpoint et déboguez la première conversation.
Vérifiez d'abord en dehors de Chatwoot : listez les modèles avec votre clé et lancez une chat completion contre l'id exact que vous avez réglé dans CAPTAIN_OPEN_AI_MODEL. Si ces vérifications passent, la moitié passerelle est prouvée et tout le reste est du côté Chatwoot. Redémarrez ensuite et observez la première interaction de Captain. Les échecs d'authentification pointent vers la config de clé ; model-not-found pointe vers la config de modèle ; les erreurs à forme 404 pointent vers un /v1 collé dans la config d'endpoint. Si les fonctionnalités de Captain n'apparaissent simplement pas, c'est une question de disponibilité et de licence sur votre palier d'installation, pas de configuration d'endpoint. Une fois que les conversations circulent, la console APIsRouter affiche le modèle par requête, le nombre de tokens et la dépense. L'IA de support est une ligne budgétaire qui se cumule mensuellement, et une clé par installation transforme le journal d'usage dans le rapport de coût par service que votre équipe finance ne cesse de réclamer.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Questions fréquentes
Quelle config Chatwoot pointe Captain vers un endpoint compatible OpenAI personnalisé ?
CAPTAIN_OPEN_AI_ENDPOINT, réglée dans la console Super Admin sous App Configs, Captain, aux côtés de CAPTAIN_OPEN_AI_API_KEY et CAPTAIN_OPEN_AI_MODEL. Sur les versions actuelles, ce sont des configs d'installation, pas des variables .env.
L'endpoint doit-il inclure /v1 ?
Non. Chatwoot retire une barre oblique finale et ajoute /v1 lui-même en construisant la base API. Saisissez https://api.apisrouter.com et Chatwoot dérive https://api.apisrouter.com/v1 ; coller vous-même le /v1 produit un chemin doublé qui fait 404.
Captain peut-il tourner sur des modèles Claude ou DeepSeek ?
Oui. CAPTAIN_OPEN_AI_MODEL voyage vers l'endpoint configuré comme une simple chaîne ; la carte de préfixes de fournisseur de Chatwoot ne fait qu'étiqueter la télémétrie. Tout id que sert la passerelle fonctionne, claude-haiku-4-5-20251001 et deepseek-v4-pro inclus.
Pourquoi mon changement de config n'a-t-il pas pris effet ?
Les réglages LLM de Captain sont lus au démarrage de l'application. Redémarrez les processus web et worker de Chatwoot après avoir édité les configs dans Super Admin ; les processus en cours gardent les anciennes valeurs jusque-là.
La config d'endpoint affecte-t-elle la recherche documentaire de Captain ?
Le modèle d'embedding (CAPTAIN_EMBEDDING_MODEL, défaut text-embedding-3-small) se résout contre le même endpoint. Confirmez que l'endpoint sert l'id d'embedding que vous configurez, ou validez les fonctionnalités de documents séparément après le changement.
De quelle version de Chatwoot ai-je besoin ?
La config d'endpoint est arrivée à l'ère v4.4 mi-2025. Les versions antérieures n'exposent que la clé et le modèle avec un endpoint OpenAI codé en dur, donc mettez à niveau avant de pointer Captain vers une passerelle.