Connecter l’IA à vos propres documents pour qu’elle réponde comme un expert de votre business.
📖 COURS
1) QU'EST-CE QUE LE RAG (RETRIEVAL-AUGMENTED GENERATION) ?
Le RAG, ou "Génération Augmentée par la Récupération", est une technique qui rend les grands modèles de langage (LLM) beaucoup plus puissants. Au lieu de se fier uniquement à sa mémoire interne (ses données d'entraînement), le LLM peut accéder à une source d'information externe et à jour au moment de répondre.
Le processus est simple et élégant :
1) **Récupération (Retrieval)** : Quand un utilisateur pose une question, le système ne se précipite pas pour y répondre. Il cherche d'abord dans votre base de connaissances (des fichiers texte, des PDF, des pages web...) les extraits les plus pertinents pour répondre à cette question.
2) **Augmentation** : Le système prend la question originale de l'utilisateur et "l'augmente" en lui ajoutant le contexte pertinent qu'il vient de trouver.
3) **Génération (Generation)** : Il envoie ensuite le tout (question + contexte) au LLM avec une instruction claire : *"En te basant uniquement sur le contexte fourni, réponds à la question suivante."*
2) POURQUOI LE RAG EST-IL UNE RÉVOLUTION ?
- **Réduction des "Hallucinations"** : Le principal problème des LLM est qu'ils peuvent inventer des faits. Le RAG force le modèle à baser ses réponses sur des documents que vous fournissez, le rendant beaucoup plus factuel et fiable.
- **Connaissances à Jour** : Les LLM publics ne connaissent pas les événements récents ou les informations privées de votre entreprise. Avec le RAG, votre IA a toujours accès aux dernières informations que vous lui donnez.
- **Transparence** : Vous pouvez savoir exactement quelle information a été utilisée pour générer une réponse, ce qui est crucial pour le support client.
3) LES VECTEURS : COMMENT L'IA "CHERCHE" L'INFORMATION
Pour chercher rapidement dans des centaines de documents, on ne fait pas une simple recherche par mot-clé. On utilise des **embeddings**. Un "embedding" est une représentation numérique (un vecteur) du sens d'un morceau de texte.
- On pré-calcule les embeddings de toute notre base de connaissances et on les stocke dans une base de données spéciale : une **Vector Store**.
- Quand un utilisateur pose une question, on calcule l'embedding de sa question.
- On compare ensuite le vecteur de la question aux vecteurs de notre base de connaissances pour trouver les textes dont le "sens" est le plus proche. C'est incroyablement plus efficace qu'une recherche par mot-clé.
🗝️ POINTS CLÉS
1) RAG = RECHERCHE AVANT DE RÉPONDRE
- Le système cherche d'abord l'information pertinente, puis génère la réponse.
2) FIABILITÉ ACCRUE
- Le RAG "ancre" les réponses du LLM dans la réalité de vos documents, évitant les inventions.
3) CONNAISSANCES PERSONNALISÉES
- Votre IA peut enfin parler de VOS services, VOS prix, VOS procédures.
4) LES EMBEDDINGS SONT LE MOTEUR DE RECHERCHE
- Cette technologie permet de trouver l'information pertinente en se basant sur le sens sémantique, pas juste sur les mots.
💪 PRATIQUE
1) CRÉER VOTRE FICHIER DE CONNAISSANCES
1) Sur votre ordinateur, créez un fichier simple nommé `base_de_connaissances.txt`.
2) Remplissez-le avec des informations sur une entreprise fictive, sous forme de questions/réponses. C'est ce que notre IA va "apprendre".
```txt
# Horaires et Contact
Q: Quels sont vos horaires d'ouverture ?
R: Nous sommes ouverts du lundi au vendredi, de 9h à 18h.
Q: Comment puis-je vous contacter ?
R: Vous pouvez nous joindre par email à contact@crilocom.fr ou par téléphone au 01.23.45.67.89.
# Services et Tarifs
Q: Proposez-vous des services de création de site web ?
R: Oui, nous proposons la création de sites web sur mesure, de la vitrine simple au site e-commerce complexe.
Q: Combien coûte un site vitrine ?
R: Le tarif pour un site vitrine standard commence à 1500€ HT. Nous proposons des devis personnalisés sur demande.
```
2) CRÉER LE WORKFLOW D'INGESTION DES CONNAISSANCES
Ce workflow ne tournera qu'une seule fois, pour charger les informations dans la mémoire de n8n.
1) Créez un **nouveau workflow** dans n8n.
2) **Nœud 1 : Read Binary File**. Cherchez ce nœud et ajoutez-le. Dans les paramètres, uploadez votre fichier `base_de_connaissances.txt`.
3) **Nœud 2 : Split Text**. Après le premier nœud, ajoutez un nœud **"Text Splitter"**. Configurez-le pour séparer les morceaux en vous basant sur un double saut de ligne (`\n\n`).
4) **Nœud 3 : OpenAI Embeddings**. Ajoutez un nœud **"OpenAI"** en mode `Embedding`.
5) **Nœud 4 : Vector Store**. Ajoutez un nœud **"LangChain Vector Store"**.
- **Operation**: `Upsert`.
- **Vector Store Provider**: `FAISS`.
- **File Path**: `/data/mon_clone_ia.faiss`.
6) **Exécutez ce workflow manuellement**. Votre base de connaissances est maintenant "vectorisée" et sauvegardée.
3) MODIFIER LE WORKFLOW DE CHAT POUR UTILISER LE RAG
1) Allez sur la branche `true` de votre nœud "IF" qui sépare les messages `PRO` des `PERSO`.
2) **Nœud 1 (à insérer) : Vector Store**. Ajoutez un nœud **"LangChain Vector Store"**.
- **Operation**: `Similarity Search`.
- **File Path**: Indiquez le même chemin (`/data/mon_clone_ia.faiss`).
- **Query**: C'est la question de l'utilisateur. Récupérez-la depuis le webhook : `{{$json.body.entry[0].changes[0].value.messages[0].text.body}}`.
3) **Nœud 2 (à insérer) : OpenAI Chat**. C'est lui qui va générer la réponse.
- Configurez le prompt RAG :
- **Rôle "System"**:
```
Tu es un assistant clientèle. Réponds à la question en te basant EXCLUSIVEMENT sur le CONTEXTE fourni. Si le contexte ne contient pas la réponse, dis-le poliment.
CONTEXTE:
{{$json.text}}
```
- **Rôle "User"**: La question originale de l'utilisateur.
4) **Nœud 3 : HTTP Request (Réponse finale)**. Modifiez le nœud de réponse pour y insérer la réponse de l'IA.
❓ FAQ
1) QUE SE PASSE-T-IL SI JE METS À JOUR MON FICHIER `BASE_DE_CONNAISSANCES.TXT` ?
L'IA ne le saura pas automatiquement. Vous devez ré-exécuter manuellement le workflow d'ingestion (celui de l'Étape 2) pour que la base de données vectorielle (le fichier `.faiss`) soit mise à jour avec les nouvelles informations.
2) EST-CE QUE CELA FONCTIONNE AVEC DES DOCUMENTS PLUS COMPLEXES COMME DES PDF ?
Oui ! n8n possède des nœuds pour lire le contenu de PDF (`Read PDF` node). Il vous suffit de remplacer le premier nœud du workflow d'ingestion par le lecteur de document approprié. Le reste du processus reste identique.
3) FAISS EST-IL ADAPTÉ À UNE TRÈS GRANDE QUANTITÉ DE DOCUMENTS ?
FAISS est excellent pour démarrer. Si votre base de connaissances devient énorme, vous pourriez envisager d'utiliser une solution de vector store hébergée et plus scalable, comme Pinecone ou Weaviate, qui ont toutes des nœuds dédiés dans n8n.
🧠 QUIZ
1) QUEL EST L'OBJECTIF PRINCIPAL DU RAG ?
* a) Rendre l'IA plus créative.
* b) Rendre les réponses de l'IA plus fiables en les basant sur une source de connaissances spécifique.
* c) Accélérer le temps de réponse de l'IA.
* d) Comprendre les messages vocaux.
...
Réponse : B
2) QU'EST-CE QU'UN "EMBEDDING" ?
* a) Le texte original de la base de connaissances.
* b) Le nom d'un nœud n8n.
* c) Une représentation numérique du sens d'un texte.
* d) Un type de base de données.
...
Réponse : C
3) QUEL NŒUD N8N EST UTILISÉ POUR LA RECHERCHE DE SIMILARITÉ DANS LA BASE VECTORIELLE ?
* a) OpenAI Chat
* b) LangChain Vector Store (en mode "Similarity Search")
* c) Text Splitter
* d) Read Binary File
...
Réponse : B