Construire un RAG Conversationnel avec Mémoire Long-Terme
Guide complet pour implémenter un système de mémoire persistante permettant des conversations contextuelles sur plusieurs sessions.
- Auteur
- Ailog Team
- Date de publication
- Temps de lecture
- 18 min
- Niveau
- advanced
RAG Conversationnel avec Mémoire Long-Terme
Introduction
Un système RAG classique traite chaque requête indépendamment. Mais les utilisateurs s'attendent à des conversations continues, où l'assistant se souvient des échanges précédents. Ce guide explique comment implémenter une mémoire persistante.
Types de Mémoire Mémoire de Session (Court-Terme) • Durée : Une conversation • Contenu : Historique des messages • Usage : Maintenir le contexte immédiat • Stockage : Redis Mémoire Utilisateur (Long-Terme) • Durée : Permanente • Contenu : Préférences, informations apprises • Usage : Personnalisation • Stockage : PostgreSQL Mémoire Épisodique • Durée : Permanente • Contenu : Conversations passées marquantes • Usage : Référencer des échanges antérieurs • Stockage : Qdrant (vectoriel)
Architecture
Le flux comprend : User Message > Memory Retrieval Layer (Session Memory Redis + User Profile Postgres + Episodic Memory Qdrant) > Context Builder > RAG Pipeline > Memory Update Layer.
Implémentation Gestion de la Mémoire de Session
Utiliser Redis avec TTL de 24h, garder les N derniers messages pour éviter l'explosion.
``python class SessionMemory: def __init__(self, redis_client, session_id, max_messages=20): self.redis = redis_client self.session_id = session_id self.max_messages = max_messages self.ttl = 86400 24h `` Extraction de Faits Utilisateur
Extraire les faits durables : profession, niveau d'expertise, technologies utilisées, préférences. Mémoire Épisodique Vectorielle
Créer des résumés mémorables des sessions, calculer l'importance, stocker dans Qdrant. Construction du Contexte
Combiner profil utilisateur + souvenirs pertinents + historique de session.
Bonnes Pratiques Gestion de la Vie Privée
Implémenter un mécanisme forget_user pour RGPD : supprimer profil, mémoire épisodique, et sessions. Limitations de Taille • MAX_FACTS = 20 • MAX_EPISODIC_MEMORIES = 100 • MAX_SESSION_MESSAGES = 50
Nettoyer régulièrement les vieux souvenirs en gardant les plus importants/récents.
Conclusion
La mémoire long-terme transforme un chatbot en véritable assistant personnel. Les utilisateurs apprécient de ne pas avoir à se répéter, et la personnalisation améliore significativement la qualité des réponses.
Points clés : Séparer les types de mémoire selon leur durée et usage Extraction intelligente des faits persistants Recherche sémantique pour les souvenirs épisodiques Respect de la vie privée avec mécanismes d'oubli