What is ConversationSummaryMemory in Langchain: Explained Simply
ConversationSummaryMemory in Langchain is a memory module that keeps track of a conversation by creating and updating a summary instead of storing every message. It helps language models remember the main points of long chats efficiently by summarizing past interactions.How It Works
ConversationSummaryMemory works like a smart note-taker during a chat. Instead of remembering every single message, it writes a short summary that captures the important details and updates this summary as the conversation continues.
Imagine talking with a friend and they keep a small notebook where they jot down key points you discuss. This way, they don’t need to remember every word but still recall the main ideas when you talk again. This makes the conversation smoother and helps the language model focus on relevant context without getting overwhelmed.
Example
This example shows how to create a ConversationSummaryMemory and use it with a Langchain chat model to keep a running summary of the conversation.
from langchain.chat_models import ChatOpenAI from langchain.memory import ConversationSummaryMemory from langchain.chains import ConversationChain # Initialize the chat model chat = ChatOpenAI(temperature=0) # Create ConversationSummaryMemory instance memory = ConversationSummaryMemory(llm=chat, max_token_limit=1000) # Create a conversation chain with memory conversation = ConversationChain(llm=chat, memory=memory) # Simulate a conversation print(conversation.predict(input="Hi! How are you?")) print(conversation.predict(input="Can you remind me what we talked about?")) print(conversation.predict(input="Tell me a joke."))
When to Use
Use ConversationSummaryMemory when you want your chatbot or assistant to remember the main points of a long conversation without storing every detail. It is perfect for applications where conversations can get lengthy, and you want to keep the context manageable.
For example, customer support bots can use it to summarize user issues over multiple messages, or personal assistants can keep track of ongoing tasks and preferences without repeating everything.
Key Points
- Summarizes conversation: Keeps a short summary instead of full chat history.
- Efficient memory: Saves tokens and improves performance for long chats.
- Updates dynamically: Summary grows as conversation continues.
- Easy integration: Works with Langchain chat models and chains.