Aller au contenu

Fenêtre Contextuelle Glissante

Ce que vous saurez dans 3 minutes

  • L’analogie de la “Lampe Torche” pour comprendre la vision limitée de l’IA.
  • Pourquoi conserver le System Prompt est vital même quand on glisse.
  • Comment implémenter une ConversationBufferWindowMemory avec LangChain.

1. Comprendre

L’Analogie de la Lampe Torche

Imaginez une fresque géante peinte sur un mur de 100 mètres (votre conversation entière). Vous êtes dans le noir complet avec une lampe torche (le contexte de l’IA). Le faisceau de la lampe ne peut éclairer que 5 mètres à la fois. Pour voir la suite de la fresque, vous devez avancer. Mais en avançant, ce qui était au début (les 5 premiers mètres) retombe dans l’obscurité.

  • Lumière = Ce que l’IA “voit” pour générer sa réponse.
  • Obscurité = Ce que l’IA a oublié (sauf si vous lui rappelez).
  • Faisceau = La taille de la fenêtre (ex: 8k tokens).

Le Mécanisme FIFO

La Fenêtre Glissante (Sliding Window) applique une logique FIFO (First-In, First-Out). C’est un tapis roulant.

  1. La conversation démarre, la mémoire se remplit.
  2. La limite est atteinte (le verre est plein).
  3. L’utilisateur parle à nouveau.
  4. Pour faire rentrer ce nouveau message, le système supprime le message le plus vieux.

2. Appliquer

Implémentation Standard (LangChain)

C’est la stratégie par défaut pour les chatbots simples.

On définit une variable k qui est le nombre d’échanges (paires User/AI) à garder. Si k=5, l’IA se souvient seulement des 5 derniers “Allers-Retours”.

La Ruse du “System Prompt” Épinglé

Pour éviter le problème d’amnésie des règles de base, les systèmes modernes utilisent une fenêtre glissante modifiée. Ils gardent toujours le bloc #0 (Le System Prompt) fixe, et ne font glisser que les messages de #1 à #N.

Structure du Contexte envoyé au LLM :

  1. 📌 System Prompt (Fixe) : “Tu es un assistant expert…”
  2. ✂️ [Messages supprimés par glissement]
  3. 📜 Messages Récents (Glissants) : Les 10 derniers échanges.

3. Aller plus loin

Fenêtre Glissante vs RAG

La fenêtre glissante est une gestion de mémoire à court terme (Short-Term Memory). Pour se souvenir de choses lointaines (le nom d’Alice dit il y a 3 heures), on utilise le RAG (Retrieval Augmented Generation) ou mémoire vectorielle, qui est une mémoire à long terme.

  • Sliding Window : “De quoi on parle maintenant ?”
  • RAG : “Que sais-je sur ce sujet dans mes archives ?”

Limites et Évolution

Avec l’arrivée de modèles à contexte gigantesque (Gemini 1.5 Pro et son million de tokens), la fenêtre glissante devient moins critique pour les petites conversations. On peut souvent tout mettre dans le contexte (“Brute Force”). Cependant, pour des raisons de coût et de vitesse, la fenêtre glissante reste la norme industrielle pour les chatbots grand public. Payer pour ré-analyser 1 million de tokens à chaque “Bonjour” est ruineux.


Questions Fréquentes

L’IA prévient-elle quand elle oublie ?

Non. L’effacement est silencieux. Si le prompt glisse hors de la fenêtre, pour l’IA, l’événement n’a jamais existé.

Quelle est la taille idéale (k) ?

Cela dépend de votre budget token et du modèle. Généralement, on vise à remplir 70-80% de la fenêtre contextuelle du modèle pour garder une marge de sécurité pour la réponse.


Notions Liées (Spider Web)

Ressources Externes