mirror of
				https://github.com/hwchase17/langchain.git
				synced 2025-10-31 16:08:59 +00:00 
			
		
		
		
	Co-authored-by: jacoblee93 <jacoblee93@gmail.com> Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
		
			
				
	
	
		
			158 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ```python
 | |
| from langchain.memory import ConversationBufferMemory
 | |
| ```
 | |
| 
 | |
| 
 | |
| ```python
 | |
| memory = ConversationBufferMemory()
 | |
| memory.save_context({"input": "hi"}, {"output": "whats up"})
 | |
| ```
 | |
| 
 | |
| 
 | |
| ```python
 | |
| memory.load_memory_variables({})
 | |
| ```
 | |
| 
 | |
| <CodeOutputBlock lang="python">
 | |
| 
 | |
| ```
 | |
|     {'history': 'Human: hi\nAI: whats up'}
 | |
| ```
 | |
| 
 | |
| </CodeOutputBlock>
 | |
| 
 | |
| We can also get the history as a list of messages (this is useful if you are using this with a chat model).
 | |
| 
 | |
| 
 | |
| ```python
 | |
| memory = ConversationBufferMemory(return_messages=True)
 | |
| memory.save_context({"input": "hi"}, {"output": "whats up"})
 | |
| ```
 | |
| 
 | |
| 
 | |
| ```python
 | |
| memory.load_memory_variables({})
 | |
| ```
 | |
| 
 | |
| <CodeOutputBlock lang="python">
 | |
| 
 | |
| ```
 | |
|     {'history': [HumanMessage(content='hi', additional_kwargs={}),
 | |
|       AIMessage(content='whats up', additional_kwargs={})]}
 | |
| ```
 | |
| 
 | |
| </CodeOutputBlock>
 | |
| 
 | |
| ## Using in a chain
 | |
| Finally, let's take a look at using this in a chain (setting `verbose=True` so we can see the prompt).
 | |
| 
 | |
| 
 | |
| ```python
 | |
| from langchain.llms import OpenAI
 | |
| from langchain.chains import ConversationChain
 | |
| 
 | |
| 
 | |
| llm = OpenAI(temperature=0)
 | |
| conversation = ConversationChain(
 | |
|     llm=llm, 
 | |
|     verbose=True, 
 | |
|     memory=ConversationBufferMemory()
 | |
| )
 | |
| ```
 | |
| 
 | |
| 
 | |
| ```python
 | |
| conversation.predict(input="Hi there!")
 | |
| ```
 | |
| 
 | |
| <CodeOutputBlock lang="python">
 | |
| 
 | |
| ```
 | |
|     
 | |
|     
 | |
|     > Entering new ConversationChain chain...
 | |
|     Prompt after formatting:
 | |
|     The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
 | |
|     
 | |
|     Current conversation:
 | |
|     
 | |
|     Human: Hi there!
 | |
|     AI:
 | |
|     
 | |
|     > Finished chain.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|     " Hi there! It's nice to meet you. How can I help you today?"
 | |
| ```
 | |
| 
 | |
| </CodeOutputBlock>
 | |
| 
 | |
| 
 | |
| ```python
 | |
| conversation.predict(input="I'm doing well! Just having a conversation with an AI.")
 | |
| ```
 | |
| 
 | |
| <CodeOutputBlock lang="python">
 | |
| 
 | |
| ```
 | |
|     
 | |
|     
 | |
|     > Entering new ConversationChain chain...
 | |
|     Prompt after formatting:
 | |
|     The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
 | |
|     
 | |
|     Current conversation:
 | |
|     Human: Hi there!
 | |
|     AI:  Hi there! It's nice to meet you. How can I help you today?
 | |
|     Human: I'm doing well! Just having a conversation with an AI.
 | |
|     AI:
 | |
|     
 | |
|     > Finished chain.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|     " That's great! It's always nice to have a conversation with someone new. What would you like to talk about?"
 | |
| ```
 | |
| 
 | |
| </CodeOutputBlock>
 | |
| 
 | |
| 
 | |
| ```python
 | |
| conversation.predict(input="Tell me about yourself.")
 | |
| ```
 | |
| 
 | |
| <CodeOutputBlock lang="python">
 | |
| 
 | |
| ```
 | |
|     
 | |
|     
 | |
|     > Entering new ConversationChain chain...
 | |
|     Prompt after formatting:
 | |
|     The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
 | |
|     
 | |
|     Current conversation:
 | |
|     Human: Hi there!
 | |
|     AI:  Hi there! It's nice to meet you. How can I help you today?
 | |
|     Human: I'm doing well! Just having a conversation with an AI.
 | |
|     AI:  That's great! It's always nice to have a conversation with someone new. What would you like to talk about?
 | |
|     Human: Tell me about yourself.
 | |
|     AI:
 | |
|     
 | |
|     > Finished chain.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
|     " Sure! I'm an AI created to help people with their everyday tasks. I'm programmed to understand natural language and provide helpful information. I'm also constantly learning and updating my knowledge base so I can provide more accurate and helpful answers."
 | |
| ```
 | |
| 
 | |
| </CodeOutputBlock>
 | |
| 
 | |
| And that's it for the getting started! There are plenty of different types of memory, check out our examples to see them all
 |