文章目录
- 1 内存记忆Memory
- 1.1 记忆系统支持的操作
- 1.2 记忆的存储
- 1.3 记忆的查询
- 2 记忆的应用
- 2.1 设置环境变量
- 2.2 ConversationEntityMemory实体记忆
- 2.3 ConversationKGMemory知识图谱记忆
- 2.3.1 创建ConversationKGMemory
- 2.3.2 创建ConversationChain
- 2.4 ConversationBufferWindowMemory缓冲窗口记忆
- 2.4.1 对话记忆设置与提取
- 2.4.2 完整示例
- 3 参考附录
1 内存记忆Memory
大多数LLM应用都具有对话功能,如聊天机器人,记住先前的交互非常关键。对话的重要一环是能够引用之前提及的信息,这些信息需要进行存储,因此将这种存储过去交互信息的能力称为记忆(Memory)。
默认情况下,链式模型和代理模型都是无状态的,这意味着它们会独立处理每个传入的查询,类似于底层的LLMs和聊天模型本身的处理方式。
当有了记忆之后,每个链都定义了一些需要特定输入的核心执行逻辑。其中一些输入直接来自用户,但其中一些输入可以来自记忆。在给定的运行中,链将与其记忆系统交互两次。
1.1 记忆系统支持的操作
记忆系统需要支持两种基本操作:读取和写入。
(1)READ,在接收到初始用户输入之后但在执行核心逻辑之前,链将从其内存系统中读取并增强用户输入。
(2)WRITE,在执行核心逻辑之后但在返回答案之