feat(memory): 引入基于向量的瞬时记忆系统
引入了一个新的瞬时记忆系统,该系统将短期对话片段(消息集合)存储在专门的向量数据库中,以提供更即时、更相关的上下文。 该系统通过以下组件实现: - **MessageCollection**: 用于封装一组相关消息的数据结构。 - **MessageCollectionStorage**: 负责将消息集合向量化并存入专用的ChromaDB集合,同时管理集合的生命周期(基于数量和时间清理)。 - **MessageCollectionProcessor**: 缓冲每个聊天的消息,当达到阈值时,将它们组合成一个`MessageCollection`并交由Storage处理。 - **集成**: `MemoryManager`和`MemorySystem`已更新,将瞬时记忆无缝融合到现有的记忆检索流程中,优先展示来自当前聊天的上下文。 此外,还进行了以下调整: - 移除`orjson.dumps`中的`ensure_ascii=False`参数,以遵循`orjson`的默认行为,该行为始终返回UTF-8字节串,从而简化了编码处理。 - 在配置文件中增加了瞬时记忆最大集合数和保留时间的选项。
This commit is contained in:
committed by
Windpicker-owo
parent
dcab3b2a0f
commit
2200a9ff2a
@@ -315,6 +315,10 @@ class MemoryConfig(ValidatedConfigBase):
|
||||
enable_vector_memory_storage: bool = Field(default=True, description="启用Vector DB记忆存储")
|
||||
enable_llm_instant_memory: bool = Field(default=True, description="启用基于LLM的瞬时记忆")
|
||||
enable_vector_instant_memory: bool = Field(default=True, description="启用基于向量的瞬时记忆")
|
||||
instant_memory_max_collections: int = Field(default=100, ge=1, description="瞬时记忆最大集合数")
|
||||
instant_memory_retention_hours: int = Field(
|
||||
default=0, ge=0, description="瞬时记忆保留时间(小时),0表示不基于时间清理"
|
||||
)
|
||||
|
||||
# Vector DB配置
|
||||
vector_db_similarity_threshold: float = Field(
|
||||
|
||||
Reference in New Issue
Block a user