1 points par GN⁺ 2026-03-25 | 1 commentaires | Partager sur WhatsApp
  • Développement d’un réceptionniste IA “Axle” capable de répondre à de vrais appels afin de résoudre les pertes de revenus causées par les appels manqués dans un garage haut de gamme
  • L’IA est construite sur une base Retrieval-Augmented Generation (RAG) afin de fournir des réponses exactes à partir des véritables informations de service et de tarification collectées sur le site web
  • Intégration de Vapi, Deepgram, ElevenLabs, FastAPI, MongoDB Atlas, etc. pour mettre en place la connexion téléphonique, la reconnaissance/synthèse vocale et l’enregistrement de l’historique des conversations
  • La qualité vocale a été ajustée avec un ton naturel et des phrases courtes afin d’offrir aux clients des réponses à la fois conviviales et professionnelles
  • Extension prévue vers un système de réservation, des notifications SMS et un tableau de bord de rappel ; pour un agent vocal spécialisé métier, l’essentiel réside dans la base de connaissances et la conception de l’escalade

Processus de création d’un réceptionniste IA

  • Création d’un réceptionniste IA sur mesure “Axle” pour résoudre le problème d’un frère qui gère un garage automobile haut de gamme et subit des pertes de plusieurs milliers de dollars par mois à cause des appels sans réponse
  • Conçu non pas comme un simple chatbot, mais comme un agent vocal capable de prendre de vrais appels et de répondre aux demandes des clients à partir d’informations réelles comme les prix, les horaires d’ouverture et les politiques
  • Le projet se compose de trois étapes : construction de la base de connaissances (pipeline RAG)connexion téléphonique et intégration serveurajustement de la qualité vocale et du ton conversationnel

Étape 1 : construire le cerveau (pipeline RAG)

  • Utilisation de l’approche Retrieval-Augmented Generation (RAG) pour que l’IA réponde à partir de données réelles
    • Un simple LLM présente un risque d’hallucination, comme annoncer un prix erroné ; les réponses sont donc limitées aux seules informations réelles
  • Scraping des données du site web pour collecter plus de 21 documents, incluant types de services, prix, durée, horaires, modes de paiement, garantie et politique de prêt de véhicule
  • Stockage de la base de connaissances dans MongoDB Atlas et création d’embeddings vectoriels en 1024 dimensions avec le modèle Voyage AI (voyage-3-large)
    • Recherche sémantique via l’index Atlas Vector Search
  • Lorsqu’une question client arrive, la requête est convertie avec le même modèle d’embedding afin de récupérer les 3 documents les plus proches sémantiquement
  • Utilisation du modèle Anthropic Claude (claude-sonnet-4-6) pour générer une réponse à partir des documents récupérés
    • Le prompt système inclut les règles suivantes : « ne pas utiliser d’informations hors base de connaissances, rester concis et conversationnel, proposer un rappel en cas d’incertitude »
  • Résultat : dans le terminal, des questions comme « Quel est le prix d’une vidange ? » reçoivent une réponse exacte avec le tarif réel et les détails du service

Étape 2 : connecter un vrai numéro de téléphone

  • Utilisation de la plateforme Vapi pour relier le cerveau de l’IA à un véritable système téléphonique
    • Achat d’un numéro, reconnaissance vocale via Deepgram, synthèse vocale via ElevenLabs et fonctionnalité d’appel de fonctions en temps réel
  • Mise en place d’un serveur webhook FastAPI
    • Vapi transmet les questions des clients à l’endpoint /webhook via des requêtes tool-calls
    • Le serveur les envoie au pipeline RAG, récupère la réponse de Claude, puis la renvoie à Vapi
    • Il faut minimiser la latence pour conserver un rythme de conversation naturel
  • Utilisation de Ngrok pour exposer le serveur local via une URL HTTPS externe et permettre des tests en temps réel pendant le développement
  • Configuration de l’assistant Vapi

    • Connexion du message d’accueil et de deux outils (answerQuestion, saveCallback) au webhook
    • Réponse aux questions ou, en cas d’incertitude, récupération du nom et du numéro de téléphone pour enregistrer un rappel
    • La mémoire conversationnelle permet de conserver le contexte des échanges précédents
    • Gestion possible de questions enchaînées comme « Quels sont vos horaires ? » → « Et combien coûte un changement de pneus ? »
  • Enregistrement des journaux d’appel dans MongoDB

    • Enregistrement du numéro appelant, de la question, de la réponse, du passage éventuel à un conseiller humain et de l’horodatage
    • Les demandes de rappel sont stockées dans une collection callbacks distincte pour permettre un suivi
    • Cela permet d’analyser les motifs de demandes clients et le volume d’appels

Étape 3 : ajuster la qualité vocale

  • En tenant compte de la différence entre réponse textuelle et réponse vocale, il faut optimiser le rendu pour la voix
    • Une phrase naturelle à l’écrit peut sembler peu naturelle à l’oral
  • Choix de la voix ElevenLabs

    • Après avoir testé environ 20 voix, la voix “Christopher” s’est révélée la plus naturelle et la plus adaptée à l’ambiance du garage
    • Les voix trop robotiques ou excessivement enjouées ne convenaient pas
  • Modification du prompt système

    • Phrases courtes, suppression du Markdown, retrait des formules inutiles comme « Excellente question ! »
    • Les prix sont prononcés en toutes lettres en langage naturel (« forty-five dollars »)
    • Réponses limitées à 2 à 4 phrases
    • L’objectif est de produire une voix humaine, chaleureuse et professionnelle
  • Test du flux d’escalade (rappel)

    • Si une question ne figure pas dans la base de connaissances, l’IA indique qu’elle ne sait pas, demande le nom et le numéro, puis enregistre le tout dans MongoDB
    • Le propriétaire du garage peut ensuite recontacter directement le client
  • Écriture de tests d’intégration

    • Vérification du pipeline RAG, du traitement webhook et du flux complet
    • Inclusion de la gestion des cas limites, comme les requêtes invalides, l’absence de résultat de recherche ou l’absence de numéro de rappel

Composition de la stack technique

  • Vapi (intégration Deepgram & ElevenLabs) — numéro de téléphone, reconnaissance vocale, synthèse vocale, appels de fonctions
  • Ngrok — tunnel HTTPS pour le développement local
  • FastAPI + Uvicorn — serveur webhook
  • MongoDB Atlas — base de connaissances, recherche vectorielle, journaux d’appel, file de rappels
  • Voyage AI (voyage-3-large) — embeddings de texte sémantiques
  • Anthropic Claude (claude-sonnet-4-6) — génération de réponses fondées sur la base de connaissances
  • Python — avec pymongo, voyageai, anthropic, fastapi
  • Copilot CLI — outil d’automatisation du build

Étapes suivantes

  • À ce stade, l’IA sait déjà répondre aux questions et collecter les demandes de rappel
  • Les objectifs suivants sont la synchronisation calendrier pour les réservations en temps réel, les notifications SMS, un tableau de bord de gestion des rappels, le renforcement de la sécurité et le déploiement sur Railway
  • Une fois finalisé, le système pourra fonctionner 24 h/24 et éviter les pertes de revenus dues aux appels manqués
  • La partie la plus difficile n’a pas été le code, mais la mise au point d’un ton de voix adapté au garage
  • Enseignement clé : ne pas utiliser un LLM brut tel quel pour un agent vocal spécialisé métier
    • Il doit impérativement s’appuyer sur une véritable base de connaissances et sur un flux de gestion de l’incertitude (escalade)
    • Ce n’est pas une exception, mais une fonction centrale

1 commentaires

 
GN⁺ 2026-03-25
Avis Hacker News
  • J’ai déjà travaillé comme conseiller service (chargé de l’accueil). Le système décrit dans l’article ne me semble pas viable en conditions réelles

    1. S’il n’existe pas d’historique de réparation identique, il y a de fortes chances que le devis soit faux. Dans certains États, un devis erroné peut poser un problème juridique
    2. Le stock et le prix des pièces changent en permanence. Si le système ne le reflète pas, il ne fera qu’ajouter de la confusion
    3. Les nouvelles interventions sont complexes dès la sélection des pièces. Plus le véhicule est haut de gamme, plus c’est délicat
    4. La seule partie vraiment utile serait sans doute les notifications de récupération du véhicule. Par exemple pour informer automatiquement de la fin des travaux ou de l’avancement
      Ce genre de développement dépasse la simple arrogance : c’est dangereux. Construire ça sur des hypothèses non vérifiées met en péril les moyens de subsistance d’autrui
    • Je ne suis pas expert non plus, mais je comprends cette impression de frime. S’il faut une réceptionniste, le plus naturel est d’embaucher quelqu’un. Il est difficile de comprendre pourquoi confier son activité à une solution d’IA non éprouvée. Je ne sais pas si c’est juste pour éviter de gérer du personnel ou pour suivre la mode
    • Il existe en fait une solution plus simple. Il suffit de permettre à la personne qui travaille sous la voiture de répondre au téléphone avec un haut-parleur mains libres. Avec un modèle local de reconnaissance vocale, on peut même parler de réseaux de neurones, et le coût resterait autour de 200 à 300 dollars, micro compris
    • Mais à lire l’article original, cet atelier dispose déjà de services fixes et d’une grille tarifaire. Donc sauf dans les cas où un devis sur mesure est nécessaire, les problèmes évoqués plus haut ne s’appliquent pas
    • Dire que c’est « dangereux » me paraît excessif. Le développeur essaie d’aider l’entreprise de son frère et, même si ce n’est pas parfait, une hausse de 10 % du taux de conversion client suffit déjà à rendre l’effort rentable
    • Les notifications de fin d’intervention ou les mises à jour d’avancement sont déjà possibles via des systèmes TTS depuis des années. Pas besoin de LLM pour ça
  • Le concessionnaire Subaru de notre région permet de choisir un assistant IA lors d’une prise de rendez-vous par téléphone. Je l’ai essayé : c’était plus précis et plus rapide qu’un humain. Même constat pour la prise de commande par IA chez Taco Bell. Dans ce genre de cas, on ne perd rien à ne pas parler à une personne, et on peut toujours être redirigé vers un humain si nécessaire

  • Ce type de billet de blog ne raconte que la moitié de l’histoire. J’aimerais savoir si le chiffre d’affaires a réellement augmenté, si les clients se souciaient de parler à un bot, et s’il y a eu des cas d’échec

    • En réalité, ce genre de problème pouvait déjà être résolu avant l’IA avec des services d’assistant virtuel. Pour 200 à 1000 dollars par mois, ça suffit, et cela permet simplement de récupérer du chiffre d’affaires déjà perdu. L’IA n’est qu’une souricière plus compliquée, et pour un service premium, un accueil humain inspire bien davantage confiance
    • À mon avis, il n’y a probablement pas encore eu assez de tests en conditions réelles. Des éléments comme une adresse e-mail sont difficiles à retranscrire correctement pour un LLM. En réponse vocale en temps réel, Anthropic était lent, tandis que Groq était très rapide, sous les 200 ms
    • J’ai déjà eu besoin en urgence de faire remplacer un pare-brise automobile, mais le système vocal automatique continuait à demander des informations inutiles, alors j’ai raccroché. Pour un simple rendez-vous, ça peut aller, mais dans des situations particulières, il faut au final parler à un humain
    • Ce genre d’essai est raisonnable. En revanche, ses performances réelles restent inconnues. C’est un peu comme un papier tournesol entre optimistes et pessimistes de l’IA
  • En ce moment, j’ai plutôt une opinion positive des assistants téléphoniques basés sur des LLM. Quand j’ai appelé le support de Mint Mobile, le LLM a compris naturellement et a résolu mon problème en une minute. Avant, j’aurais attendu plus de 20 minutes

    • Les LLM articulent clairement, n’ont pas de bruit de micro-casque et sont faciles à comprendre. Bien sûr, certains cas sont catastrophiques, comme le chatbot LLM d’eBay, mais un système bien implémenté fonctionne remarquablement bien
    • Le support chat d’Amazon est similaire. Le LLM prépare à l’avance les informations sur la commande, puis l’humain ne fait que la validation finale. C’est efficace
    • En revanche, on peut se demander pourquoi cela ne peut pas être résolu dans l’application et pourquoi il faut utiliser un LLM. Au fond, ça ressemble à un échec du processus de développement
    • J’ai eu une expérience comparable. J’ai posé une question technique, le LLM a répondu correctement, puis un conseiller humain a repris la conversation mais s’est montré moins compétent. Malgré tout, cela fait gagner du temps
    • C’est bien mieux que les anciens robots, et les chatbots basés sur le RAG sont assez utiles pour remplacer une recherche dans la documentation. Par exemple, le chatbot de manager.io donnait directement la réponse au lieu d’obliger à fouiller dans les docs, ce qui était pratique
  • D’après l’article, l’atelier perd plusieurs milliers de dollars par mois faute de pouvoir répondre au téléphone. Dans ce cas, une réceptionniste externalisée à environ 500 dollars par mois offrirait un bien meilleur ROI

    • En réalité, une simple messagerie vocale pourrait déjà résoudre une partie du problème. Que ce soit avec une IA ou une messagerie, certains clients raccrocheront de toute façon
    • De plus, s’ils sont déjà trop occupés pour répondre au téléphone, il est probable qu’ils n’aient pas non plus la capacité d’absorber davantage de clients
    • Un ami utilise un service de réception externalisé qui couvre de 9 h à 17 h pour 150 livres par mois. Lui ne fait qu’ajuster le planning le soir. Si ce que raconte l’article est vrai, l’atelier fonctionne déjà à 100 % de capacité
    • Un bon service writer coûte cher, mais cela vaut largement l’investissement. Il inspire confiance aux clients et pourrait même reprendre l’entreprise plus tard
    • Au final, ce ROI ressemble surtout à l’effet publicitaire du cours sur l’IA que le blog cherche à promouvoir
  • Ces temps-ci, dès que j’ai l’impression de parler à un robot, je raccroche. Mais il semble probable que bientôt les voix d’IA deviennent indiscernables de celles d’humains. À ce moment-là, la confiance dans le téléphone pourrait s’effondrer. L’e-mail et LinkedIn débordent déjà de spam généré par IA, donc on s’est reporté vers le téléphone, mais cela pourrait bientôt disparaître aussi

    • Cela dit, si ça bascule sur une messagerie vocale, je raccrocherai pareil, donc il n’y a rien à perdre
    • Quand l’IA comprend mal ce que je dis et me transfère finalement à un humain, c’est épuisant de devoir raconter la même chose deux fois
    • En cherchant récemment une voiture, j’ai échangé avec plusieurs concessionnaires, avant de comprendre plus tard que c’étaient tous des conseillers au faux nom basés sur des LLM. La vitesse de réponse était tellement rapide que ça paraissait étrange
  • Ils disent « ce n’est pas un chatbot généraliste », mais en pratique ce n’est guère plus qu’un chatbot généraliste version 2026

  • En regardant la page « About » du blog, j’ai vu que l’auteur disait s’être inspiré d’un influenceur expliquant qu’il était devenu riche en apprenant à coder. Mais cette attitude est loin de la direction que j’aimerais voir prendre la culture de l’ingénierie

  • Je trouve un peu déprimant que des gens écrivent leur blog personnel avec l’IA

    • Cela dit, j’apprécie qu’il l’ait dit franchement. La plupart des gens ont peu d’expérience en écriture et pensent obtenir un « bon texte » grâce à un LLM. Pour eux, un texte écrit par une IA ne semble peut-être pas mauvais
  • Est-ce qu’on a vraiment besoin de RAG ici ? Avec juste une grille tarifaire et des horaires d’ouverture, tout tient dans la fenêtre de contexte

    • C’était probablement un projet à but pédagogique. Moi aussi, sur des projets perso, il m’arrive d’apprendre en utilisant une architecture excessive
    • Dans une conversation vocale, le plus gros problème est plutôt la latence. Si le site comporte plusieurs pages, utiliser RAG pour n’en charger rapidement qu’une partie puis laisser le LLM produire la réponse détaillée peut être plus efficace
    • Ce serait plus simple de mettre directement tout le site web et la grille tarifaire dans le contexte
    • Je suis d’accord. Ce niveau d’information peut tout à fait être traité d’un coup
    • Globalement, cette architecture est excessive