ConversationBufferMemory(对话缓存内存)
本笔记本介绍了如何使用ConversationBufferMemory
(对话缓存内存)。这种记忆方式允许存储消息,并将消息提取到一个变量中。
我们首先将其提取为字符串。
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
memory.save_context({"input": "hi"}, {"output": "whats up"})
memory.load_memory_variables({})
{'history': 'Human: hi\nAI: whats up'}
我们还可以将历史记录作为消息列表获取(如果你正在与聊天模型一起使用,这非常有用)。
memory = ConversationBufferMemory(return_messages=True)
memory.save_context({"input": "hi"}, {"output": "whats up"})
memory.load_memory_variables({})
{'history': [HumanMessage(content='hi', additional_kwargs={}),
AIMessage(content='whats up', additional_kwargs={})]}
在链式结构中使用
最后,让我们看看如何在链式结构中使用它(将verbose=True
以便我们可以看到提示)。
from langchain.llms import OpenAI
from langchain.chains import ConversationChain
llm = OpenAI(temperature=0)
conversation = ConversationChain(
llm=llm,
verbose=True,
memory=ConversationBufferMemory()
)
conversation.predict(input="Hi there!")
进入新的 ConversationChain 链... 格式化后的提示: 下面是一个友好对话,涉及到一个人类和一个 AI。AI 很健谈,提供了许多上下文中的具体细节。如果 AI 对某个问题不知道答案,它会真实地说自己不知道。
当前对话:
人类:嗨! AI:
链结束。
"嗨!很高兴见到你。我今天能帮你做些什么?"
conversation.predict(input="I'm doing well! Just having a conversation with an AI.")
进入新的 ConversationChain 链... 格式化后的提示: 下面是一个友好对话,涉及到一个人类和一个 AI。AI 很健谈,提供了许多上下文中的具体细节。如果 AI 对某个问题不知道答案,它会真实地说自己不知道。
当前对话: 人类:嗨! AI:嗨!很高兴见到你。我今天能帮你做些什么? 人类:我过得很好!只是和一个 AI 对话而已。 AI:
链结束。
"That's great! It's always nice to have a conversation with someone new. What would you like to talk about?"
conversation.predict(input="Tell me about yourself.")
进入新的 ConversationChain 链... 格式化后的提示: 下面是一个友好对话,涉及到一个人类和一个 AI。AI 很健谈,提供了许多上下文中的具体细节。如果 AI 对某个问题不知道答案,它会真实地说自己不知道。
当前对话: 人类:嗨! AI:嗨!很高兴见到你。我今天能帮你做些什么? 人类:我过得很好!只是和一个 AI 对话而已。 AI:太棒了!和新朋友对话总是很愉快的。你想聊些什么呢? 人类:告诉我关于你自己的事情。 AI:
链结束。
"当然!我是一个被创建来帮助人们完成日常任务的 AI。我被编程为理解自然语言并提供有用的信息。我还在不断学习和更新我的知识库,以便能够提供更准确和有帮助的答案。"
这就是入门的全部内容!还有许多不同类型的记忆,可以查看我们的示例以了解全部内容。