Fonctionnement de la mémoire contextuelle
ChatGPT conserve les échanges sous forme de texte brut dans le context window. Chaque token envoyé ou reçu occupe une place dans cette fenêtre, qui pour GPT‑4 Turbo atteint 128 000 tokens. Lorsque la limite est atteinte, les messages les plus anciens sont supprimés, ce qui modifie la base de connaissances du modèle pour la session en cours. Cette mécanique explique pourquoi les réponses peuvent changer au fil d’une même conversation : le modèle ne voit plus les premiers messages et ne peut plus les exploiter pour ajuster son comportement.
Mécanismes de persistance dans le produit ChatGPT
En plus du contexte immédiat, OpenAI a introduit une fonction de « mémoire » qui résume les interactions précédentes et les stocke de façon persistante entre les sessions. La synthèse, générée automatiquement, est limitée à quelques centaines de mots et est réutilisée comme system prompt lors de chaque nouvelle conversation. Cette mémoire repose sur les custom instructions que l’utilisateur peut consulter dans les paramètres. Elle influence les réponses en orientant le ton, le niveau de détail ou les préférences exprimées par l’utilisateur.
Comment réinitialiser ou modifier la mémoire
Le produit propose trois leviers :
1. Effacer l’historique de discussion : le bouton « Clear chat » supprime le contexte de la session en cours, mais ne touche pas la synthèse persistante.
2. Modifier les instructions personnalisées : dans les paramètres, l’utilisateur peut éditer ou désactiver la section « What I want ChatGPT to know about me ». En supprimant le texte, la synthèse est réinitialisée lors du prochain démarrage.
3. Désactiver la mémoire persistante : depuis le même menu, il est possible de désactiver complètement la fonction de mémoire, ce qui force le modèle à ne se baser que sur le contexte de la session actuelle.
Ces actions sont immédiates et ne nécessitent aucun redémarrage du service.
Exemple d’utilisation via l’API
import openai
response = openai.ChatCompletion.create(
model="gpt-4-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Remember I prefer concise answers."},
{"role": "assistant", "content": "Understood. I will keep replies brief."},
{"role": "user", "content": "What is the capital of France?"}
]
)
print(response.choices[0].message.content)
Dans cet extrait, le deuxième message agit comme une instruction mémorisée pour la durée de la session. En supprimant ou en modifiant le message « system », on change directement le comportement du modèle.