De la mémoire de poisson à une conversation intelligente : découvrez RAG 2.0, le bot 10 fois plus malin
Vous avez construit votre premier système RAG (Retrieval-Augmented Generation) dans la première partie, capable de répondre à des questions à partir d’un document. Mais les utilisateurs ne veulent pas seulement des réponses ponctuelles — ils attendent des conversations fluides, une mémoire contextuelle et une précision accrue. Aujourd’hui, nous passons à RAG 2.0, une version bien plus intelligente, capable de dialoguer comme un chatbot avancé, avec une mémoire cohérente et un contrôle utilisateur. Nous allons créer un chatbot interactif en utilisant Streamlit, qui combine une recherche sémantique et une génération contextuelle. Le cœur de ce système repose sur plusieurs améliorations clés : une segmentation intelligente du texte, un modèle plus puissant, une mémoire conversationnelle et une interface utilisateur permettant de voir les résultats de recherche. Étapes clés du développement Préparation du document Créez un dossier data et sauvegardez un fichier essay.txt contenant un texte sur l’innovation dans les startups, avec des exemples comme Instagram (initialement une application de check-in) ou Twitter (débuté comme une plateforme de podcast). Installation des dépendances Installez les librairies nécessaires : streamlit, langchain, faiss-cpu, transformers, sentence-transformers. Segmentation améliorée avec RecursiveCharacterTextSplitter Contrairement au CharacterTextSplitter qui découpe le texte par nombre de caractères (parfois au milieu d’un mot), nous utilisons RecursiveCharacterTextSplitter. Il divise le texte selon des limites naturelles (phrases, paragraphes) avant de recourir aux caractères. Cela évite les fragments incomplets comme « Instagram started a » ou « started as a check-in app », ce qui aurait perturbé la compréhension contextuelle. Utilisation d’un modèle plus performant Remplaçons flan-t5-base par flan-t5-large, un modèle plus grand et mieux adapté aux dialogues. Il génère des réponses plus naturelles, contextuelles et riches, idéal pour un chatbot. Personnalisation du prompt Nous définissons un PromptTemplate qui guide le modèle à : Utiliser uniquement le contexte fourni. Répondre clairement et complètement. Gérer les cas où le contexte est insuffisant. Le prompt intègre aussi les échanges passés via chat_history. Mémoire conversationnelle Grâce à ConversationBufferMemory, le chatbot conserve l’historique des échanges. Cela permet de comprendre des questions implicites comme « et quoi pour Twitter ? », qui sont interprétées comme « Quelle était l’origine de Twitter ? » grâce au contexte précédent. Recherche contrôlée par l’utilisateur Une interface latérale permet de rechercher des mots-clés. Le système affiche les documents les plus proches (avec un score de similarité) et met en évidence les occurrences du terme recherché. Cela donne au utilisateur un contrôle sur les informations utilisées, augmentant la transparence et la confiance. Intégration dans une application Streamlit Le code final crée une interface web simple : Une zone de saisie pour poser des questions. Une vue de l’historique des messages. Une barre latérale pour effectuer des recherches manuelles. Résultats observés Le chatbot comprend les références implicites entre les messages. Il utilise correctement le contexte passé pour répondre à des questions comme « et quoi pour Twitter ? ». Les résultats de recherche montrent que les documents les plus pertinents sont bien sélectionnés (ex : « Instagram started as a check-in app » a le score le plus bas, donc le plus proche du terme recherché). Évaluation et avis d’experts Ce passage de RAG 1.0 à RAG 2.0 illustre une évolution fondamentale : passer d’un système réactif à un système conversationnel. Selon les experts en IA, l’ajout de mémoire contextuelle et de contrôle utilisateur est essentiel pour des applications réelles. Des entreprises comme Microsoft, Salesforce ou Notion intègrent déjà ces fonctionnalités dans leurs outils. L’approche proposée ici, basée sur LangChain et Hugging Face, reste accessible, modulaire et évolutif. En résumé, RAG 2.0 n’est pas seulement plus intelligent — il est plus humain. Il combine mémoire, contexte, contrôle et précision, transformant un simple outil de réponse en un assistant conversationnel capable de suivre une discussion complexe, tout en restant fidèle aux données. Un pas décisif vers des chatbots vraiment utiles.