Le problème
L’EHL est l’une des grandes institutions mondiales de l’hôtellerie et du management. Son site attire plusieurs millions de visiteurs par an, générant des volumes importants de questions récurrentes historiquement traitées à la main par les équipes marketing et admissions de l’EHL.
La présence web de l’EHL est riche mais vaste : des centaines de pages sur plusieurs domaines, des PDF et des documents annexes. L’information existait mais n’était pas toujours facile à trouver, d’où un volume élevé d’appels et d’emails sur des questions récurrentes (programmes, frais, admissions, vie de campus). Beaucoup arrivaient en dehors des heures ouvrées, quand personne n’était disponible, malgré un public fortement international.
Le défi :
- Délivrer des réponses rapides et précises, ancrées dans le contenu officiel (tolérance zéro pour les hallucinations sur une institution exposée au public)
- Répondre dans le ton de l’EHL, fidèle à ses standards éditoriaux
- Capturer les visiteurs à forte intention comme leads qualifiés, avec le contexte complet de la conversation
- Maintenir la conformité RGPD / nLPD suisse avec une résidence stricte des données
- Opérer à l’échelle et à la latence d’un système de production, avec une observabilité complète
Mon rôle
Ce projet a été développé alors que je travaillais comme consultant IA pour Novatix. J’ai piloté le projet de bout en bout, y compris :
- Cadrage initial et priorisation des cas d’usage IA avec la direction de l’EHL
- Architecture des données : cartographie du contenu, catégorisation, stratégie d’indexation
- Choix de la stack technique (compte tenu des contraintes et préférences de l’EHL)
- Conception et implémentation du système RAG
- Architecture des garde-fous et pipelines d’évaluation
- Workflows agentiques (capture de leads, intégration CRM)
- Optimisation de la latence et mise à l’échelle de l’infrastructure
- Pilotage de la phase de tests (humaine et LLM-as-a-judge)
- Reporting et tableau de bord d’observabilité
- Déploiement en production sur Azure
Approche technique
Découverte et priorisation du contenu
Le projet a commencé par un audit complet de l’écosystème web de l’EHL. J’ai cartographié le contenu en catégories thématiques (programmes académiques, admissions, vie de campus, etc.) et travaillé avec les équipes marketing et admissions pour identifier les schémas de questions prioritaires, à partir de comportements réels d’utilisateurs plutôt que d’hypothèses. La première version de production visait le domaine principal (ehl.edu), en excluant délibérément le blog (des milliers d’articles avec un faible signal questions-réponses) et les domaines satellites (études graduées, Passugg, Singapour).
Architecture RAG avec enrichissement de métadonnées
Le contenu a été crawlé avec Firecrawl, excellent pour convertir des pages web en markdown structuré. Il est ensuite passé par un pipeline de chunking custom : chaque chunk était enrichi de métadonnées structurées — titre de page, URL, contexte de section et description — pour atténuer le mode d’échec classique du RAG où le contexte au niveau du chunk perd le sens porté par le document parent.
La base de données vectorielle a d’abord été bâtie sur Pinecone, puis migré vers Postgres + pgvector pour consolider l’infrastructure sur Azure, réduire la dépendance au fournisseur et baisser le coût opérationnel. Le corpus est ré-indexé automatiquement chaque mois : les chunks obsolètes sont écartés, les nouvelles pages ajoutées et le contenu modifié rafraîchi.
Les chunks étaient séparés en une base anglaise et une base française, avec un paramètre de métadonnées indiquant la langue.
Alignement de ton et garde-fous
Le chatbot repose sur une architecture basée sur LangChain. Les règles éditoriales de l’EHL, ses valeurs de marque et ses patterns de réponse email ont été encodés dans les prompts système et le comportement de récupération, pour que le chatbot réponde avec précision tout en gardant la voix et l’identité de l’EHL.
Le chatbot reformule la requête de l’utilisateur pour améliorer la récupération et détecte la langue de la question pour filtrer les métadonnées et interroger les chunks dans la langue correspondante.
Pour répondre aux exigences de conformité et de sécurité de marque de l’EHL, j’ai implémenté un pipeline de validation à deux étages : chaque réponse générée passe par un LLM secondaire plus léger dont l’unique travail est de valider la conformité aux politiques de l’EHL, de détecter les tentatives d’injection de prompt et de bloquer les sorties dangereuses ou hors marque avant qu’elles n’atteignent l’utilisateur. Chaque réponse cite ses sources pour une traçabilité complète.
Capacités agentiques
Le chatbot peut détecter les utilisateurs à forte intention (questions qualificatives sur les candidatures, les programmes, les coûts) et proposer un suivi par email ou téléphone pour être mis en relation avec un recruteur. Quand un visiteur accepte, un workflow n8n capture les coordonnées et le contexte de la conversation et les pousse dans le CRM HubSpot de l’EHL, permettant aux équipes de recrutement d’assurer le suivi avec un contexte riche et qualifié. Ainsi, des visites web passives deviennent des leads exploitables et les recruteurs peuvent continuer l’échange au lieu de repartir de zéro à chaque fois.
Scalabilité et infrastructure
L’ensemble du système tourne sur le tenant Microsoft Azure de l’EHL en Suisse, garantissant la conformité RGPD et nLPD avec une résidence des données en Suisse. Le traitement des requêtes concurrentes passe à l’échelle via Azure Managed Redis, orchestré par BullMQ, permettant à l’architecture d’absorber des pics de conversations simultanées sans dégradation de latence. Le système est conçu pour des centaines voire des milliers d’utilisateurs concurrents : taillé pour les pics de trafic liés aux campagnes marketing ou aux annonces de programmes. En pratique, il n’a jamais atteint de tels chiffres, mais l’infrastructure est là.
Évaluation : humaine et automatisée
La validation pré-déploiement combinait deux couches : des dizaines de parties prenantes EHL ont mis à rude épreuve le chatbot à travers les équipes (admissions, marketing, IT, direction) et un pipeline d’évaluation automatisé LLM-as-a-judge a noté les réponses sur l’exactitude, le ton, la qualité des citations et l’adhérence aux standards éditoriaux de l’EHL. Cette double approche a permis d’itérer avec confiance sans sacrifier la qualité.
Recueillir les avis à travers les équipes de l’EHL comptait spécifiquement ici : le chatbot était exposé au public et devait couvrir un large éventail de sujets et c’est seulement à travers le regard de chaque partie prenante que nous avons pu lui donner une voix qui sonne vraiment EHL, plutôt que celle d’un assistant générique avec le logo de l’EHL dessus.
Optimisation de la latence
Le temps de réponse moyen initial de 7 à 8 secondes a été jugé trop lent. Après quelques itérations, j’ai réussi à le réduire de moitié (3 à 4 secondes) par une combinaison de méthodes :
- Ajustement du choix de modèle (dimensionnement juste par tâche)
- Compression des prompts et gestion de la fenêtre de contexte
- Optimisation du pipeline de récupération
- Migration de la base vectorielle (Pinecone vers Postgres/pgvector), bien que le gain ici ait été négligeable
Observabilité et reporting
Une fois l’Assistant Digital en production, nous voulions naturellement savoir comment il impactait les utilisateurs et les parties prenantes de l’EHL. J’ai donc créé un pipeline de reporting automatisé suivant des KPI opérationnels et business : taux de résolution des questions, taux de capture de leads, latence, distribution géographique, répartition par langue, patterns de pics d’usage, segmentation des utilisateurs et distribution des sujets — alimentant à la fois l’optimisation continue et l’intelligence marketing de l’EHL. Ce pipeline était aussi connecté à leur plateforme Google Analytics pour suivre quelle campagne générait le meilleur engagement via le chatbot et comprendre le parcours utilisateur complet des visiteurs du site.
Le chatbot est un levier d'acquisition, transformant interactions en leads qualifiés exploitables directement pour nos équipes recrutement.
Marjo Jarvinen, Marketing and Recruitment Director, EHL
Résultat
Le chatbot tourne en production sur ehl.edu depuis son déploiement en août 2025. Voici quelques métriques d’impact clés de sa première année d’utilisation :
- 63 % des questions sont posées en dehors des heures ouvrées de l’EHL, une demande que l’institution n’aurait pas pu servir autrement
- ~80 % des questions sont résolues directement par le chatbot
- ~75 % des questions restantes, non résolues, sont correctement redirigées vers le bon service humain
- ~7 % des utilisateurs acceptent d’être recontactés. Ils deviennent des leads qualifiés livrés dans HubSpot avec le contexte de la conversation, qu’un recruteur de l’EHL peut reprendre
- La portée internationale de l’EHL se reflète dans l’usage : la majorité des conversations sont en anglais, avec une base d’utilisateurs principale en Europe et en Asie
Ce que je ferais différemment
Avec le recul, la seule chose que je ferais différemment sur ce projet, c’est m’inquiéter moins des requêtes concurrentes potentielles. J’ai conçu le chatbot pour gérer des centaines, voire des milliers d’utilisateurs simultanés, mais en pratique c’est peu probable. Même si un site est très populaire, à moins que son produit ou service central ne soit le chatbot, l’essentiel du trafic ne l’utilisera pas. J’ai passé beaucoup de temps à créer, déboguer et tester le système “queue-mode” avec Redis alors qu’en réalité cela n’a (pour l’instant) fait aucune différence. Si je devais recommencer, je livrerais le chatbot plus tôt en bêta, je mesurerais le trafic et les messages quotidiens et je concevrais (ou non) le système de queues autour de cela.
En revanche, si l’EHL décide un jour de promouvoir spécifiquement le chatbot, ou si son usage grimpe de façon inattendue pour une autre raison, personne n’aura à attendre longtemps sa réponse !