conversation-memory 是做什么的?
为LLM对话提供持久化记忆系统,包括短期记忆、长期记忆和基于实体的记忆。
概述
该技能通过分层架构管理对话中的信息:
- 短期记忆:基于令牌数或时间窗口自动过期,用于保持当前会话上下文。
- 长期记忆:将用户陈述嵌入到向量空间中,通过语义相似度检索相关记忆。
- 实体记忆:使用命名实体识别(NER)提取实体,并存储实体关系图。
使用方法
from conversation_memory import MemoryManager
# 初始化记忆管理器
mem = MemoryManager(storage="sqlite", embedding_model="all-MiniLM-L6-v2")
# 添加记忆
mem.add_short_term(session_id="sess_1", content="用户偏好咖啡而非茶")
mem.add_long_term(user_id="user_1", content="上次订购了拿铁")
支持平台
- LangChain
- AutoGPT
- 自定义Python应用
后端存储选项
| 存储类型 | 启动命令 | 适用场景 |
|---|---|---|
| SQLite | 默认内嵌 | 单机小规模部署 |
| Redis | redis-server | 需要低延迟访问 |
| Chroma | chroma run | 高维度语义搜索 |
配置
设置环境变量 MEMORY_BACKEND(取值:sqlite、redis、chroma)和 EMBEDDING_MODEL。
示例
长期记忆检索
memories = mem.query_long_term("咖啡偏好", top_k=5)
for mem_obj in memories:
print(mem_obj.text)
实体查询
entities = mem.get_related_entities(entity="Alice")
# 返回包含Alice及相关实体的结构化数据
开发者说明
无需手动管理状态,所有记忆操作通过API完成。API参考文档见 docs/api.md。
许可证
MIT