文章目录
- 1 基本理解
- 1.1 什么是长期记忆
- 1.2 类型划分
- 1.3 存储架构
- 1.3.1 四层架构
- 1.3.2 举例1
- 1.3.3 举例2
- 2 基础API的使用
- 2.1 put()/get():写入/读取API
- 2.1.1 put()源码剖析
- 2.1.2 get()源码剖析
- 2.1.3 举例1基于InMemoryStore(添加和更新)
- 2.1.4 举例2基于SqliteStore(添加和更新)
- 2.2 search():检索API
- 2.2.1 源码剖析
- 2.2.2 准备store(基于InMemoryStore测试)
- 2.2.3 举例1:按照namespace前缀搜索
- 2.2.4 举例2:按照filter过滤
- 2.2.5 举例3:按照语义搜索
- 2.2.5.1 IndexConfig源码
- 2.2.5.2 使用自定义嵌入函数
- 2.2.5.3 使用嵌入模型
长期记忆记录的是用户特定或应用级别的数据,任何会话都可以随时访问。长期记忆的存储是store -> namespace -> key -> value的四层架构。相关的API有:put() :负责写入。get() :负责读取。search() :负责检索。
1 基本理解
1.1 什么是长期记忆
短期记忆记录的是 会话级别(线程,Thread) 的数据, 会话间不共享 。
而长期记忆记录的是用户特定或应用级别的数据,任何会话都可以随时访问。
比如:
你喜欢简短回答。
你偏好Python。
某个用户是VIP。
某个流程过去怎么做效果更好。
这类信息不属于某一条聊天,而属于“用户/组织/应用本身”。
1.2 类型划分
LangChain参考CoALA paper将长期记忆划分为三类:
类型1:Semantic Memory(语义记忆)
即“事实类记忆”,记录事实/用户偏好/概念,如:
用户喜欢简洁回答。
用户常用中文。<