mirror of https://github.com/hwchase17/langchain
langchain[patch]: Fix summary buffer memory with return message flag (#21115)
## Description Memory return could be set as `str` or `message` by `return_messages` flag as mentioned in https://python.langchain.com/docs/modules/memory/#whether-memory-is-a-string-or-a-list-of-messages, where `langchain.chains.conversation.memory.ConversationSummaryBufferMemory` did not implement that. This commit added `buffer_as_str` and `buffer_as_messages` function, and `buffer` now affected by `return_messages` flag. ## Example Test Code and Output ```python # Fix: ConversationSummaryBufferMemory with return_messages flag function # Test code from langchain.chains.conversation.memory import ConversationSummaryBufferMemory from langchain_community.llms.ollama import Ollama llm = Ollama() # Create an instance of ConversationSummaryBufferMemory with return_messages set to True memory = ConversationSummaryBufferMemory(return_messages=True, llm=llm) # Add user and AI messages to the chat memory memory.chat_memory.add_user_message("hi!") memory.chat_memory.add_ai_message("what's up?") # Print the buffer print("Buffer:") print(*map(type, memory.buffer), sep="\n") print(memory.buffer, "\n") # Print the buffer as a string print("Buffer as String:") print(type(memory.buffer_as_str)) print(memory.buffer_as_str, "\n") # Print the buffer as messages print("Buffer as Messages:") print(*map(type, memory.buffer_as_messages), sep="\n") print(memory.buffer_as_messages, "\n") # Print the buffer after setting return_messages to False memory.return_messages = False print("Buffer after setting return_messages to False:") print(type(memory.buffer)) print(memory.buffer, "\n") ``` ```plaintext Buffer: <class 'langchain_core.messages.human.HumanMessage'> <class 'langchain_core.messages.ai.AIMessage'> [HumanMessage(content='hi!'), AIMessage(content="what's up?")] Buffer as String: <class 'str'> Human: hi! AI: what's up? Buffer as Messages: <class 'langchain_core.messages.human.HumanMessage'> <class 'langchain_core.messages.ai.AIMessage'> [HumanMessage(content='hi!'), AIMessage(content="what's up?")] Buffer after setting return_messages to False: <class 'str'> Human: hi! AI: what's up? ``` --------- Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com>pull/20504/merge
parent
9639457222
commit
ee1adaacaa
Loading…
Reference in New Issue