Un assistant IA qui qualifie une demande entrante à ma place
Un formulaire de contact ne qualifie rien : il enregistre trois champs et laisse le tri à faire. J'ai remplacé le mien par un assistant IA qui répond aux questions du visiteur à partir d'une base de connaissances versionnée, comprend son besoin, puis me transmet un brief structuré sur deux canaux redondants. Voici comment il est construit — et ce que la même mécanique donne appliquée à un support de niveau 1 ou à une pré-qualification commerciale.
Le problème
Un visiteur qui a une question précise n'écrit pas dans un formulaire : il part. Et les demandes qui arrivent quand même arrivent floues — « j'aimerais automatiser des trucs » — ce qui impose deux ou trois allers-retours avant de savoir s'il y a un projet. Le formulaire de contact déplace le travail de qualification sur le destinataire, au moment le plus coûteux : après la perte de l'attention du visiteur.
Ce que j'ai construit
- Un chat en streaming token par token : la réponse s'écrit sous les yeux du visiteur, sans attente d'un bloc complet. Le flux est parsé à la main, sans dépendance.
- Une base de connaissances versionnée dans le code (parcours, savoir-faire, réponses fréquentes), injectée dans le prompt système. Corriger une réponse de l'assistant est une modification de texte, pas un réentraînement.
- Deux moteurs interchangeables derrière une seule interface — Groq (Llama 3.3 70B) ou Claude — sélectionnés par variable d'environnement. Changer de fournisseur ne touche pas au reste de l'application.
- Une capture de brief à la fin de la conversation : le visiteur laisse un moyen de contact, l'historique de l'échange part avec la demande — donc le contexte est déjà là.
- Une double notification volontairement redondante : le contenu du brief par e-mail (Resend), et une alerte Telegram qui signale l'arrivée sans transporter aucune donnée personnelle. Si un canal tombe, la demande n'est pas perdue.
- Une pastille d'état en façade : un ping léger sur l'API du modèle, mis en cache 60 secondes, qui vérifie que la clé est valide sans consommer un seul token.
Les garde-fous (c'est là que tout se joue)
- Repli scripté : si aucun moteur n'est configuré ou joignable, l'assistant sert des réponses écrites à l'avance au lieu d'afficher une erreur. Le site ne tombe jamais en panne d'IA — il dégrade.
- Vérification d'origine sur chaque route : une requête qui ne vient pas du site est refusée. L'assistant ne peut pas servir de proxy gratuit vers un modèle payant.
- Limitation de débit par adresse IP, en mémoire vive, sur une fenêtre d'une minute — l'IP n'est écrite dans aucune base ni aucun journal.
- Champ leurre (honeypot) sur le formulaire de brief : les robots le remplissent, les humains ne le voient pas.
- Aucune clé d'API exposée au navigateur : tous les appels aux modèles partent du serveur. Aucune variable publique dans le bundle.
Ce que j'ai accepté de perdre
- La limitation de débit vit en mémoire vive, donc par instance serveur : sur plusieurs instances, un attaquant déterminé obtient un multiple de la limite. Accepté en connaissance de cause — la parade complète demande un magasin partagé (Redis), soit une dépendance et un coût permanents pour un site vitrine. Le jour où l'abus devient réel, c'est le premier chantier.
- La pastille d'état a jusqu'à 60 secondes de retard : le statut est mis en cache pour ne pas interroger le fournisseur à chaque visite. Un incident très bref peut donc passer inaperçu.
Ce que ça donne chez vous
- Support de niveau 1 : répondre aux questions récurrentes sur vos produits et vos process depuis votre documentation, et n'escalader que ce qui le mérite.
- Pré-qualification commerciale : un assistant qui pose les bonnes questions avant de mobiliser un commercial, et transmet une fiche déjà remplie.
- Assistant interne : interroger en langage naturel des procédures, une convention collective, un référentiel technique — au lieu de fouiller un intranet.
Un besoin de cette nature ?
Décrivez votre situation à mon assistant, ou écrivez-moi à contact@visual-concept.net. Premier retour sous 24 h, sans engagement.