Skip to Content

Chatbot Pilot

Chatbot Pilot est un chatbot de support client IA pour WordPress. Il se présente comme un widget de chat flottant côté front et une zone d’administration complète sous Réglages → Chatbot Pilot. Le plugin propose deux modes de fonctionnement :

  • Mode n8n — le widget transmet chaque message visiteur à un workflow n8n  externe via webhook. À utiliser lorsque vous faites déjà tourner des automatisations, de la logique personnalisée ou des intégrations tierces hors de WordPress.
  • Mode RAG natif — le plugin indexe vos propres contenus (articles, pages, custom post types) en chunks stockés dans une base SQLite locale, récupère les passages les plus pertinents au moment de la requête et génère une réponse avec le fournisseur LLM de votre choix (OpenAI, Anthropic Claude, Google Gemini, DeepSeek ou une instance Ollama auto-hébergée).

Les deux modes partagent le même widget, le même journal de conversation et les mêmes outils de feedback/export, vous pouvez donc changer de backend à tout moment sans perdre l’expérience côté visiteur.

Widget de chat
Widget de chat affiché côté front.

Points forts

  • Double backend : webhook n8n ou Retrieval-Augmented Generation entièrement natif.
  • Prise en charge LLM multi-fournisseurs : OpenAI, Anthropic Claude, Google Gemini, DeepSeek, Ollama (local).
  • Moteur RAG natif avec stockage SQLite, taille de chunk et top-K configurables.
  • Indexation en arrière-plan via le cron WordPress : la réindexation ne bloque jamais l’admin.
  • Widget personnalisable : position, couleurs primaire/fond/texte, couleurs des bulles utilisateur et bot, dimensions, rayon de bordure, typographie.
  • Textes éditables pour le message d’accueil, le sous-titre, le placeholder du champ de saisie, l’état de chargement et le message d’erreur.
  • Journal de conversation avec feedback par message (pouce haut / pouce bas) et export CSV.
  • Health check intégré qui vérifie la connectivité du fournisseur, le statut de l’index et l’accessibilité du webhook.
  • Prêt pour le multilingue via Polyglot — le texte du widget et la base de connaissances peuvent être servis par langue.

Prérequis

Le plugin est autonome et ne requiert aucun service externe en mode RAG natif au-delà de l’API LLM de votre choix. Le vector store fourni utilise SQLite, présent dans toute installation PHP standard.

ComposantRecommandé
WordPress6.2 ou plus récent (testé jusqu’à 7.0)
PHP7.4 ou plus récent (8.x recommandé)
Base de donnéesMySQL/MariaDB pour les données WordPress, SQLite pour l’index vectoriel
HTTPSRequis pour les appels webhook et fournisseur
Réseau sortantRequis pour atteindre le fournisseur LLM sélectionné

Pour le mode n8n, il vous faut en plus une instance n8n joignable avec un nœud Webhook configuré pour accepter des requêtes POST. Pour Ollama, il vous faut un serveur Ollama en marche, accessible depuis l’hôte WordPress (typiquement http://localhost:11434).

Installation

  1. Ouvrez Extensions → Ajouter → Téléverser une extension dans l’administration WordPress et téléversez le fichier ZIP de Chatbot Pilot.
  2. Activez Chatbot Pilot.
  3. Ouvrez Réglages → Chatbot Pilot. Le plugin crée ses tables et options par défaut au premier chargement.
  4. Choisissez le mode backend (n8n ou RAG natif) et complétez la configuration du fournisseur ci-dessous.
  5. En mode RAG natif, cliquez sur Réindexer au moins une fois pour peupler la base de connaissances avant d’exposer le widget aux visiteurs.
  6. Visitez n’importe quelle page publique du front pour confirmer que le widget apparaît à la position configurée.

Le widget est enqueued automatiquement sur chaque page une fois le plugin configuré ; aucun shortcode ni modification de thème n’est nécessaire.

Configuration

L’écran des réglages se trouve sous Réglages → Chatbot Pilot et est découpé en six onglets — Général, IA / RAG, Apparence, Icônes, Textes et Feedback. Toutes les valeurs sont enregistrées par site (ou par site du réseau en multisite) et peuvent être modifiées sans réindexer, exception faite des paramètres d’indexation eux-mêmes.

Général

Chatbot Pilot — Réglages, onglet Général
Onglet Général — Licence, interrupteur principal Activer le chatbot, liste de visibilité par URL et carte Notification ballon avec son délai.

L’onglet Général porte trois cartes :

  • Licence — collez votre clé PILOT-XXXX-XXXX-XXXX-XXXX et cliquez sur Vérifier & enregistrer pour activer les mises à jour automatiques du plugin.
  • Général → Activer le chatbot — interrupteur principal pour afficher le widget sur le site.
  • Visibilité → Masquer sur ces URLs — liste séparée par virgule ou retour à la ligne des chemins où le widget doit rester masqué (correspondance par préfixe : /login masque aussi /login/).
  • Notification ballon — fait apparaître une bulle de type ballon à côté du bouton de chat après un délai configurable (Afficher après, en secondes ; 0 = immédiatement) pour attirer l’attention.

Mode backend

Choisissez exactement un backend. Le choix détermine quels champs ultérieurs sont visibles.

  • Webhook n8n — le widget POST le message visiteur, l’ID de conversation et l’URL de la page courante vers le webhook que vous fournissez. La réponse attendue est un payload JSON avec une chaîne reply qui est rendue à l’utilisateur.
  • RAG natif — la requête est traitée en interne. Le plugin récupère les top-K chunks les plus pertinents depuis l’index local, construit un prompt et appelle le fournisseur LLM configuré.

Réglages n8n

Visibles uniquement lorsque le mode backend est réglé sur Webhook n8n.

  • URL du webhook — URL HTTPS complète de votre nœud Webhook n8n.
  • En-tête d’authentification (optionnel) — nom et valeur d’un en-tête envoyé à chaque requête, utile pour les webhooks protégés par un secret partagé.
  • Timeout — temps maximum, en secondes, d’attente d’une réponse avant d’afficher le message d’erreur à l’utilisateur.

Fournisseur IA (RAG natif)

Visible uniquement lorsque le mode backend est réglé sur RAG natif.

Réglages du fournisseur IA
Réglages du fournisseur IA

Sélectionnez un fournisseur et remplissez les champs correspondants :

FournisseurNotes
OpenAIMeilleure qualité globale avec la famille GPT-4. Requiert une clé d’API depuis platform.openai.com.
Anthropic ClaudeRaisonnement et contrôle de ton solides. Requiert une clé d’API depuis console.anthropic.com.
Google GeminiRéponses rapides à un tarif compétitif. Requiert une clé depuis Google AI Studio.
DeepSeekOption économique avec de fortes performances sur les contenus techniques.
OllamaTourne en local. Configurez l’URL de base (par défaut http://localhost:11434) et le nom du modèle. Aucune clé d’API requise.

Chaque fournisseur expose les trois mêmes champs :

  • Clé d’API (ou URL de base pour Ollama) — stockée dans la table d’options WordPress ; jamais exposée côté front.
  • Modèle — identifiant du modèle à appeler (par exemple gpt-4o-mini, claude-3-5-sonnet, gemini-1.5-flash, deepseek-chat, llama3.1:8b).
  • Tester la connexion — envoie un ping minimal au fournisseur et rapporte le succès ou l’erreur littérale renvoyée par l’API. Lancez-le toujours après un changement de clé ou de modèle.

Base de connaissances

Contrôle la construction et l’interrogation de l’index RAG natif. Les changements de paramètres de chunking prennent effet à la prochaine réindexation.

  • Chemin source — liste séparée par virgule des post types (ou URL racine) à ingérer. Laissez la valeur par défaut post,page pour indexer l’ensemble du site, ou restreignez à un CPT spécifique de base de connaissances.
  • Taille des chunks — nombre de tokens de chaque chunk écrit dans l’index. Par défaut 500. Des chunks plus petits améliorent la précision de récupération ; des chunks plus grands préservent plus de contexte environnant.
  • Top-K — nombre de chunks récupérés par question visiteur et passés au LLM en contexte. Par défaut 5.
  • Réindexer — planifie une reconstruction complète via WP-Cron. La barre de progression indique le nombre de documents en file, traités et ignorés. Pendant l’exécution, l’index existant continue de servir les requêtes.
  • Vider l’index — supprime chaque ligne de la table vectorielle. À utiliser avant de changer de modèle d’embedding.

Apparence

Chaque aspect visuel du widget est éditable depuis cet onglet. L’aperçu en direct à droite se met à jour immédiatement à mesure que vous modifiez les valeurs.

Réglages d'apparence
Réglages d’apparence

Position

  • Bas droite (par défaut)
  • Bas gauche

Couleurs

  • Couleur principale — fond de l’en-tête, bouton d’envoi, anneaux de focus.
  • Couleur de fond — fond de la fenêtre de chat.
  • Couleur du texte — couleur de base du texte dans la fenêtre.
  • Couleur du message utilisateur — fond de la bulle pour le visiteur.
  • Couleur du message bot — fond de la bulle pour l’assistant.

Dimensions

  • Largeur et hauteur de la fenêtre — en pixels.
  • Taille du bouton lanceur — diamètre du bouton flottant.
  • Rayon de bordure — appliqué à la fenêtre, aux bulles et au lanceur.

Typographie

  • Police — hérite du thème par défaut ; peut être surchargée par n’importe quelle stack CSS de polices.
  • Taille de police de base — appliquée au corps du chat.

Icônes

Chatbot Pilot — onglet Icônes
Onglet Icônes — choisissez l’icône du lanceur (bulle de chat, message, robot, support, étincelle), l’icône de fermeture et l’icône d’envoi, ou téléversez vos propres SVG/PNG.

L’onglet Icônes dissocie le branding de l’onglet Apparence pour permuter les icônes du lanceur, de fermeture et d’envoi sans toucher aux couleurs ni aux tailles. Le set fourni couvre les patterns de chat les plus courants ; le champ URL personnalisée accepte tout SVG ou PNG accessible publiquement.

Textes

Chatbot Pilot — onglet Textes
Onglet Textes — chaque chaîne visible des visiteurs au même endroit : titre et sous-titre d’en-tête, message d’accueil, placeholder de saisie, textes de chargement et d’erreur, invite de feedback et texte de la notification ballon.

Chaque chaîne destinée aux visiteurs vit dans l’onglet Textes, vous pouvez ainsi traduire ou reformuler le widget sans toucher au thème visuel :

  • Message d’accueil — premier message affiché à l’ouverture du widget par un visiteur.
  • Sous-titre — petit texte sous le titre dans l’en-tête.
  • Placeholder de saisie — texte affiché dans le champ de saisie vide.
  • Texte de chargement — affiché en attendant la réponse de l’assistant.
  • Message d’erreur — affiché lorsque l’appel backend échoue ou tombe en timeout.
  • Invite de feedback — texte affiché au-dessus des contrôles pouce haut / pouce bas (lorsque le feedback est activé).
  • Texte de notification ballon — texte affiché dans la bulle de ballon.

Règles de visibilité

  • Afficher sur — choisissez entre Toutes les pages, Uniquement les pages sélectionnées ou Partout sauf les pages sélectionnées. Les IDs de page se saisissent en liste séparée par virgule.
  • Masquer pour les utilisateurs connectés — coupe le widget pour les sessions authentifiées.
  • Breakpoint mobile — largeur de viewport en dessous de laquelle le widget bascule en mise en page compacte.

Feedback et analytics

  • Activer les boutons de feedback — ajoute des contrôles pouce haut / pouce bas sous chaque message de l’assistant.
  • Stocker les conversations — conserve la transcription complète dans la table wp_chatbotpilot_conversations pour relecture et export.
  • Période de rétention — nombre de jours après lesquels les conversations stockées sont purgées par la tâche cron quotidienne. Mettez 0 pour les conserver indéfiniment.

Health check

Le panneau de health check est toujours visible en haut de la page des réglages. Il lance trois sondes et affiche une pastille de statut colorée pour chacune :

  • Accessibilité du fournisseur — appelle l’API LLM avec un ping d’un token.
  • Statut de l’index — compte les chunks du store SQLite et rapporte l’horodatage de la dernière réindexation réussie.
  • Accessibilité du webhook (mode n8n) — émet une requête OPTIONS vers l’URL de webhook configurée.

Toute pastille non verte est cliquable et déploie l’erreur littérale renvoyée par l’appel sous-jacent, ce qui suffit en général à diagnostiquer le problème.

Utilisation

Pour les visiteurs

Le widget apparaît sur chaque page où les règles de visibilité s’appliquent. Le visiteur clique sur le bouton lanceur pour ouvrir la fenêtre, lit le message d’accueil et tape une question dans le champ de saisie. Une pression sur Entrée ou le bouton d’envoi soumet le message ; le widget affiche le texte de chargement, puis rend la réponse de l’assistant avec une mise en forme markdown (gras, liens, listes numérotées et à puces, blocs de code).

Si les boutons de feedback sont activés, le visiteur peut noter chaque message de l’assistant. La note est stockée par ID de message pour que la même réponse puisse être relue plus tard dans le panneau d’administration.

Pour les administrateurs

L’administration au quotidien se fait à deux endroits :

  • Réglages → Chatbot Pilot pour la configuration et le panneau de health check.
  • Chatbot Pilot → Conversations pour le journal de conversation et l’export des feedbacks.
Feedback et journal de conversation
Feedback et journal de conversation

Le journal de conversation liste chaque session avec la date, la page d’origine, le nombre de messages et le feedback agrégé. Chaque ligne peut être dépliée pour afficher la transcription complète, y compris les passages de contexte récupérés en mode RAG natif. Le bouton Exporter en CSV en haut de la liste produit un CSV UTF-8 avec une ligne par message ; il respecte tout filtre de date ou de note actif.

Réindexer après modification du contenu

L’index natif ne se met pas à jour en temps réel. Déclenchez une réindexation lorsque :

  • Vous publiez ou modifiez substantiellement un lot d’articles.
  • Vous changez la taille des chunks, le chemin source ou le modèle d’embedding.
  • Le panneau de health check rapporte un statut d’index obsolète ou vide.

Pour les mises à jour incrémentales, le plugin réindexe aussi un seul article à la sauvegarde lorsque l’option Auto-réindexer à la sauvegarde est activée dans l’onglet Base de connaissances. Cela ajoute un léger surcoût à chaque sauvegarde mais maintient la base de connaissances synchronisée sans intervention manuelle.

Changer de backend

Vous pouvez basculer entre n8n et RAG natif à tout moment. Le widget, le journal de conversation et le store de feedback sont partagés entre les modes. En basculant vers le RAG natif pour la première fois, pensez à lancer Réindexer avant que le widget ne puisse répondre.

Captures d’écran

Les captures ci-dessous correspondent aux quatre zones principales de l’interface d’administration et au widget front.

Widget de chat côté front

Widget de chat affiché sur une page
Widget de chat affiché sur une page

Configuration du fournisseur IA

Sélection du fournisseur, clé d'API, modèle et test de connexion
Sélection du fournisseur, clé d’API, modèle et test de connexion

Éditeur d’apparence du widget

Aperçu en direct avec position, couleurs, dimensions et textes
Aperçu en direct avec position, couleurs, dimensions et textes

Journal de conversation et export des feedbacks

Liste des conversations avec indicateurs de feedback
Liste des conversations avec indicateurs de feedback

FAQ

Quel backend choisir ?

Utilisez le RAG natif si votre objectif est de répondre à des questions sur votre propre contenu et que vous voulez une solution autonome qui n’a besoin que d’une clé d’API LLM. Utilisez n8n si vous voulez combiner le chatbot à des outils externes (lookups CRM, ticketing, routage personnalisé), ou si la conversation doit déclencher des actions hors WordPress.

Dois-je installer n8n pour utiliser le plugin ?

Non. n8n n’est requis que si vous sélectionnez n8n comme mode backend. Le mode RAG natif est totalement autonome.

Mes données sont-elles envoyées à un tiers ?

En mode RAG natif, chaque prompt et le contexte récupéré sont envoyés au fournisseur LLM que vous avez sélectionné. Si ce n’est pas acceptable, faites tourner le plugin face à une instance Ollama locale — aucune donnée ne quitte alors le serveur. En mode n8n, chaque message est envoyé à votre propre endpoint n8n ; ce qu’il se passe ensuite dépend du workflow que vous construisez.

Où est stocké l’index ?

L’index vectoriel est un fichier SQLite dans wp-content/uploads/chatbot-pilot/. La table d’options WordPress contient la configuration du chatbot, et la table wp_chatbotpilot_conversations contient le journal de conversation.

Puis-je l’utiliser sur un site multilingue ?

Oui. Avec Polyglot installé, l’indexeur ingère les versions traduites de chaque article et le texte du widget est servi par langue. Sans Polyglot, vous pouvez tout de même opérer un widget par langue en restreignant le chemin source à des catégories spécifiques à la langue.

Les custom post types sont-ils pris en charge ?

Oui. Ajoutez les slugs de CPT au champ Chemin source, séparés par virgule, puis réindexez.

Puis-je exporter les conversations ?

Oui. Le bouton Exporter en CSV sur l’écran Conversations produit un fichier CSV UTF-8 avec une ligne par message, incluant la note, l’horodatage, la page d’origine et le texte complet du message.

Comment supprimer les données d’un visiteur ?

Ouvrez Chatbot Pilot → Conversations, filtrez par ID de session ou par IP et utilisez l’action Supprimer sur les lignes correspondantes. La conversation et ses entrées de feedback sont retirées immédiatement.

Le widget fonctionne-t-il sans JavaScript ?

Non. Le widget est un composant JavaScript single-page ; il ne dégrade pas gracieusement vers un fallback noscript.

Dépannage

Le widget n’apparaît pas sur le front

  • Vérifiez que le mode backend est réglé et que les identifiants correspondants (clé d’API ou URL de webhook) sont enregistrés.
  • Vérifiez les règles de visibilité — la page peut être exclue.
  • Inspectez la console du navigateur : une réponse 4xx de admin-ajax.php indique en général un problème de permission ou de nonce causé par un plugin de cache agressif.

L’assistant répond avec le message d’erreur

Ouvrez le panneau de health check et cliquez sur la pastille de statut rouge pour lire l’erreur du fournisseur telle quelle. Causes fréquentes :

  • Clé d’API expirée ou révoquée.
  • Le modèle sélectionné n’est pas disponible pour votre compte ou votre région.
  • Rate limit dépassé — attendez ou montez en gamme chez le fournisseur.
  • L’URL de webhook renvoie un statut non 2xx.

La réindexation semble bloquée

Le cron WordPress ne se déclenche que lorsque le site reçoit du trafic. Soit déclenchez un hit manuel sur une page, soit appelez wp cron event run --due-now depuis WP-CLI. La barre de progression se rafraîchit toutes les quelques secondes pendant l’exécution.

Les réponses sont hors sujet ou hallucinées

  • Réindexez après des modifications récentes de contenu.
  • Augmentez Top-K pour donner plus de contexte au modèle.
  • Réduisez la Taille des chunks pour une récupération plus fine, puis réindexez.
  • Essayez un modèle plus puissant (par exemple passer de GPT-4o-mini à GPT-4o, ou de Gemini Flash à Gemini Pro).

Les réponses Ollama sont très lentes

La vitesse d’inférence locale dépend entièrement de l’hôte. Utilisez un modèle quantifié (:q4_K_M ou similaire), assurez-vous que l’accélération GPU est active et gardez la taille de chunks et le top-K modérés.

Les conversations ne sont pas stockées

Confirmez que Stocker les conversations est activé dans l’onglet Feedback & analytics et que la table wp_chatbotpilot_conversations existe. Désactiver puis réactiver le plugin recrée les tables manquantes.

Last updated on