LangChain入门:17.使用 ConversationChain实现对话记忆功能

在默认情况下,无论是 LLM 还是代理都是无状态的,每次模型的调用都是独立于其他交互的。也就是说,我们每次通过 API 开始和大语言模型展开一次新的对话,它都不知道你其实昨天或者前天曾经和它聊过天了。
你肯定会说,不可能啊,每次和 ChatGPT 聊天的时候,ChatGPT 明明白白地记得我之前交待过的事情。
的确如此,ChatGPT 之所以能够记得你之前说过的话,正是因为它使用了记忆(Memory)机制,记录了之前的对话上下文,并且把这个上下文作为提示的一部分,在最新的调用中传递给了模型。在聊天机器人的构建中,记忆机制非常重要。
使用 ConversationChain
不过,在开始介绍 LangChain 中记忆机制的具体实现之前,先重新看一下我们上一节课曾经见过的 ConversationChain。
这个 Chain 最主要的特点是,它提供了包含 AI 前缀和人类前缀的对话摘要格式,这个对话格式和记忆机制结合得非常紧密。让我们看一个简单的示例,并打印出 ConversationChain 中的内置提示模板,你就会明白这个对话格式的意义了。

#初始化语言模型
from langchain_openai import ChatOpenAI
llm=ChatOpenAI(
    openai_api_key='替换为你的API密钥',  
    base_url='https://api.chatanywhere.tech/v1',
    model='gpt-3.5-turbo',
    temperature=0.7,
)

#初始化对话链
from langchain.chains import ConversationChain
conv_chain = ConversationChain(
    llm=llm,
)

#打印对话的模型
print(conv_chain.prompt.template)

在这里插入图片描述
使用 ConversationBufferMemory
在 LangChain 中,通过 ConversationBufferMemory(缓冲记忆)可以实现最简单的记忆机制。

#使用 ConversationBufferMemory在 LangChain 中,
#通过 ConversationBufferMemory(缓冲记忆)可以实现最简单的记忆机制。
from langchain.chains.conversation.memory import ConversationBufferMemory
conversat
### 解决 Linux 环境下 LangChain 使用过程中 `libGL.so.1` 文件缺失问题 在处理 Linux 下的依赖库问题时,特别是当遇到类似于 `libGL.so.1: cannot open shared object file: No such file or directory` 的报错信息时,通常意味着系统缺少必要的图形渲染支持库。对于 CentOS 或其他基于 Red Hat 的发行版而言,直接尝试安装像 `libgl1-mesa-glx` 这样的包可能会失败,因为这些名称通常是针对 Debian 类系统的。 为了修复这个问题,在 CentOS 上应该考虑安装 Mesa 库的相关版本来提供 OpenGL 支持: ```bash sudo yum install mesa-libGL ``` 如果上述命令执行成功,则应能解决问题;但如果仍然存在依赖项未满足的情况,可以进一步通过以下方式确保所有必需组件都被正确安装: ```bash sudo yum groupinstall "Development Tools" sudo yum install mesa-libGL-devel ``` 此外,有时应用程序可能还会依赖于特定路径下的链接文件。因此,确认 `/usr/lib64` 中是否存在指向实际 `.so` 文件的有效符号链接也是很重要的。如果没有找到对应的软连接,可以通过创建新的软链来手动建立关联关系。 最后值得注意的是,某些情况下即使已经安装好了所需的共享库,由于环境变量配置不当也可能导致程序无法正常加载它们。此时应当检查并适当调整 LD_LIBRARY_PATH 变量,使其包含新加入的库目录位置。 ```bash export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/new/library/folder ``` 以上措施有助于解决因缺乏 `libGL.so.1` 而引发的一系列兼容性和运行时错误[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hugo_Hoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值