文章目录
与大模型进行多轮对话时,并不是前面的对话真的被大模型记住了,其实还是通过prompt来实现的。也就是在进行多轮对话时,在没有令牌限制或其他限制的情况下,会将前面的对话内容放进目前对话的prompt中。
langchain当中通过memory模块当中的一系列方法来实现多轮对话的记忆存储。
一、对话Memory的实现
1.1 ConversationBufferMemory
langchain中最常见的一种对话Memory的实现就是基于 ConversationBufferMemory 方法。该方法会保存历史对话的所有内容,并存储在内容中,属于短时记忆。启用的方式是构建一个对话的ConversationChain,将memory的方法作为参数传进去。还可以指定大模型、以及显示prompt的内容等。
示例代码:
import os
import openai
from langchain_community.chat_models import ChatOpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
os.environ["OPENAI_API_KEY"] = ''
openai.api_key = os.environ.get("OPENAI_API_KEY")
llm = ChatOpenAI(model_name = 'gpt-3.5-turbo',temperature = 0.0)
memory = ConversationBufferMemory() # 全部存储
conversation = ConversationChain(
llm = llm,
memory = memory

最低0.47元/天 解锁文章
1719

被折叠的 条评论
为什么被折叠?



