Le RAG pour le support client : comment rendre les réponses de l'IA vraiment précises
Les réponses brutes d'un LLM hallucinent. Le RAG (génération augmentée par récupération) ancre l'IA dans vos documents. Voici comment AskAIs Customer Service y parvient sans gaspiller de tokens.
Sans récupération, un LLM répondant à "comment réinitialiser mon mot de passe ?" donnera une réponse plausible mais probablement fausse — mauvais bouton, mauvais parcours, mauvaise URL. Le RAG (génération augmentée par récupération) corrige cela en injectant le bon fragment de votre documentation dans le prompt avant que le modèle ne s'exprime.
Le pipeline en un coup d'œil
Trois étapes : ingestion, récupération, génération.
1. Ingestion
- Importez des PDF, Markdown et fichiers Office via l'interface Connaissances
- Le worker extrait le texte, le découpe en blocs d'environ 800 tokens avec un chevauchement de 100 tokens
- Chaque bloc est encodé avec
text-embedding-3-small(1536d) - Stocké dans Postgres avec l'extension
pgvector
2. Récupération
Lorsqu'un visiteur envoie un message, nous encodons la requête et exécutons une recherche par distance cosinus sur les blocs du locataire. Le Top-K (5 par défaut) est récupéré, avec un seuil de similarité pour écarter les correspondances non pertinentes.
SELECT id, content, 1 - (embedding <=> $1) AS similarity
FROM knowledge_chunks
WHERE tenant_id = $2
ORDER BY embedding <=> $1
LIMIT 5;3. Génération
Les blocs récupérés sont ajoutés en tête du prompt système avec des instructions explicites : citer les sources, refuser si le contexte ne couvre pas la question, transférer à un humain si la confiance est faible.
Réduire la facture de tokens
Trois astuces font économiser de l'argent réel sur de grandes bases de connaissances :
- Cache d'embeddings — même texte de requête → même embedding. Clé de hachage SHA1, TTL de 24 h dans Redis. Réduit à zéro le coût de ré-encodage sur les questions répétées.
- Mise en cache des prompts — le
cache_controld'Anthropic et la mise en cache automatique d'OpenAI font que le prompt système statique n'est compté qu'une fois par fenêtre de 5 minutes. - Saut basé sur un seuil— si aucun bloc ne dépasse le seuil de similarité, n'injectez rien. Laissez le modèle dire "je ne sais pas."
Quand le RAG ne suffit pas
Le RAG gère bien les questions "comment faire X ?". Il échoue sur les données personnalisées ("où est ma commande ?") — cela nécessite l'appel de fonctions, que nous abordons dans un autre article. C'est la combinaison des deux qui vous offre une IA de niveau Intercom pour une fraction du coût.