Pourquoi je ne livre plus d'IA sans citations
Un client m'a un jour demandé, en regardant une démo de génération IA : « comment je sais que c'est vrai ? ». Bonne question, et la seule qui compte vraiment quand on met un LLM entre les mains d'un commercial qui va l'envoyer à un prospect. Un texte fluide et faux, signé par l'entreprise du client, n'est pas une fonctionnalité. C'est un passif.
Le problème que personne ne montre dans les démos
Les démos d'IA générative sont impressionnantes parce qu'elles montrent le meilleur cas : un texte cohérent, bien tourné, qui semble informé. Ce qu'elles ne montrent pas, c'est la fois sur dix où le modèle affirme qu'une entreprise « vient de lever des fonds » alors que rien de tel n'existe dans les données disponibles. En B2B, ce genre d'erreur part avec le nom de l'expéditeur et engage sa crédibilité. Le problème n'est pas que les LLM se trompent (c'est attendu, c'est même la nature de l'outil), c'est qu'ils se trompent avec la même confiance que quand ils ont raison. Rien, dans le texte produit, ne distingue une affirmation vérifiée d'une hallucination plausible.
Ce que j'ai construit dans Project A
Project A génère des séquences de prospection : des emails et messages destinés à des décideurs, à partir de signaux réels (un post LinkedIn, une actualité d'entreprise, un changement de poste). L'architecture que j'ai mise en place traite la génération non comme une boîte noire mais comme un pipeline à trois étapes.
D'abord, la génération elle-même : le modèle rédige le message en s'appuyant sur les sources récupérées pour ce prospect. Ensuite, une passe d'attribution : chaque phrase du texte généré est comparée aux sources disponibles pour déterminer si elle peut y être rattachée. Enfin, l'affichage : les phrases sourcées portent une note de bas de page cliquable vers la source réelle, les phrases non sourcées sont visuellement signalées, et un compteur global affiche par exemple « 1/2 phrases sourcées » pour que l'utilisateur voie d'un coup d'œil la fiabilité du message.
Voici, simplifiée, la structure de données qui porte cette logique :
type SourceRef = {
url: string
label: string
}
type GroundedSentence = {
text: string
source?: SourceRef
}
function verify(sentences: GroundedSentence[]) {
const sourced = sentences.filter((s) => s.source).length
return { sourced, total: sentences.length }
}
Quand l'utilisateur clique sur « Regénérer (grounded) », ce n'est pas la même génération avec un autre seed. C'est une génération contrainte : le prompt est reformulé pour n'autoriser que les affirmations directement soutenues par les sources récupérées, quitte à produire un message plus court, plus prudent, mais entièrement vérifiable.
Les compromis, sans les cacher
Ce système a un coût. La passe d'attribution ajoute de la latence : on ne peut plus se contenter de streamer le texte du modèle directement à l'écran, il faut vérifier avant d'afficher le statut de chaque phrase. Il y a aussi un arbitrage rappel contre précision : un système d'attribution trop strict signale des phrases correctes comme non sourcées (frustrant), un système trop permissif laisse passer des approximations (dangereux). J'ai choisi de pencher du côté strict : mieux vaut un message qui se dit prudemment incomplet qu'un message qui se dit sûr de lui à tort.
Et il y a le cas où rien n'est sourçable : pas de signal récent, pas d'actualité, pas de post. Dans ce cas, le système ne force pas une génération créative pour combler le vide. Il le dit, et laisse la place à un message plus générique, assumé comme tel plutôt que déguisé en personnalisation.
Ce que ça change pour un client
Un commercial qui envoie un message généré par IA engage sa réputation et celle de son entreprise. Pouvoir vérifier, en un coup d'œil, ce qui est prouvé et ce qui ne l'est pas transforme l'IA d'un générateur de texte anxiogène en un outil de travail dont on comprend les limites. C'est aussi une question de sécurité juridique : une affirmation fausse sur un prospect (un chiffre, un événement) engage la responsabilité de qui l'envoie. La traçabilité n'est pas un supplément d'âme, c'est une condition d'adoption : les équipes commerciales n'utilisent durablement un outil d'IA que si elles peuvent lui faire confiance sans le relire ligne à ligne à chaque fois.
C'est la conviction qui guide la façon dont j'intègre l'IA dans les produits que je construis : la génération n'est utile que si elle est vérifiable. Si vous avez un produit où l'IA doit produire du texte engageant pour votre entreprise ou vos clients, c'est exactement ce genre de garde-fou que je mets en place, dès l'architecture.