camel.memories.blocks 包#
子模块#
camel.memories.blocks.chat_history_block 模块#
- class camel.memories.blocks.chat_history_block.ChatHistoryBlock(storage: BaseKeyValueStorage | None = None, keep_rate: float = 0.9)[来源]#
基类:
MemoryBlock一个实现
MemoryBlock抽象基类的实现,用于维护聊天历史记录。该内存模块帮助管理对话历史记录,采用键值存储后端,可由用户提供或使用默认的内存存储。它提供了一种窗口化的方式来检索聊天历史记录,允许用户指定他们想要获取的最近消息数量。
- Parameters:
storage (BaseKeyValueStorage, optional) – 用于存储聊天历史的存储机制。如果为None,将使用
InMemoryKeyValueStorage。(默认值:None)keep_rate (float, optional) – 在历史消息中,最后一条消息的分数为1.0,每向后回溯一步,消息分数会乘以keep_rate。较高的keep_rate值会在创建上下文时保留更多历史消息。
- retrieve(window_size: int | None = None) List[ContextRecord][来源]#
根据窗口大小从内存中检索适合代理的记录,如果未指定窗口大小,则获取整个聊天历史记录。
- Parameters:
window_size (int, optional) – 指定要检索的最近聊天消息数量。如果未提供,将检索整个聊天历史记录。(默认:
None)- Returns:
检索到的记录列表。
- Return type:
列表[ContextRecord]
- write_records(records: List[MemoryRecord]) None[来源]#
将内存记录写入内存。此外,还会对消息执行验证检查。
- Parameters:
records (List[MemoryRecord]) – 要添加到内存中的内存记录。
camel.memories.blocks.vectordb_block 模块#
- class camel.memories.blocks.vectordb_block.VectorDBBlock(storage: BaseVectorStorage | None = None, embedding: BaseEmbedding | None = None)[来源]#
基类:
MemoryBlock一个
MemoryBlock抽象基类的实现,用于在向量数据库中维护和检索使用向量嵌入的信息。- Parameters:
storage (Optional[BaseVectorStorage], optional) – 向量数据库的存储机制。如果未提供,默认为内存中的
Qdrant。(默认值:None)embedding (可选[BaseEmbedding], 可选) – 将聊天消息转换为向量表示的嵌入机制。如果未提供,默认为
OpenAiEmbedding。(默认值:None)
- retrieve(keyword: str, limit: int = 3) List[ContextRecord][来源]#
根据关键词内容从向量数据库中检索相似记录。
- Parameters:
keyword (str) – 该字符串将被转换为向量表示形式以查询数据库。
limit (int, optional) - 要检索的相似消息的最大数量。(默认:
3)。
- Returns:
- 从向量数据库中检索出的内存记录列表
基于与
current_state的相似性。
- Return type:
列表[ContextRecord]
- write_records(records: List[MemoryRecord]) None[来源]#
将提供的聊天消息转换为向量表示,并将其写入向量数据库。
- Parameters:
records (List[MemoryRecord]) – 要添加到内存中的内存记录。
模块内容#
- class camel.memories.blocks.ChatHistoryBlock(storage: BaseKeyValueStorage | None = None, keep_rate: float = 0.9)[来源]#
基类:
MemoryBlock一个实现
MemoryBlock抽象基类的实现,用于维护聊天历史记录。该内存模块帮助管理对话历史记录,采用键值存储后端,可由用户提供或使用默认的内存存储。它提供了一种窗口化的方式来检索聊天历史记录,允许用户指定他们想要获取的最近消息数量。
- Parameters:
storage (BaseKeyValueStorage, optional) – 用于存储聊天历史的存储机制。如果为None,将使用
InMemoryKeyValueStorage。(默认值:None)keep_rate (float, optional) – 在历史消息中,最后一条消息的分数为1.0,每向后回溯一步,消息的分数就会乘以keep_rate。较高的keep_rate会导致在上下文创建过程中保留历史消息的可能性更高。
- retrieve(window_size: int | None = None) List[ContextRecord][来源]#
根据窗口大小从内存中检索适合代理的记录,如果未指定窗口大小,则获取整个聊天历史记录。
- Parameters:
window_size (int, optional) – 指定要检索的最近聊天消息数量。如果未提供,将检索整个聊天历史记录。(默认:
None)- Returns:
检索到的记录列表。
- Return type:
列表[ContextRecord]
- write_records(records: List[MemoryRecord]) None[来源]#
将内存记录写入内存。此外,还会对消息执行验证检查。
- Parameters:
records (List[MemoryRecord]) – 要添加到内存中的内存记录。
- class camel.memories.blocks.VectorDBBlock(storage: BaseVectorStorage | None = None, embedding: BaseEmbedding | None = None)[来源]#
基类:
MemoryBlock一个
MemoryBlock抽象基类的实现,用于在向量数据库中维护和检索使用向量嵌入的信息。- Parameters:
storage (Optional[BaseVectorStorage], optional) – 向量数据库的存储机制。如果未提供,默认为内存中的
Qdrant。(默认值:None)embedding (可选[BaseEmbedding], 可选) - 用于将聊天消息转换为向量表示的嵌入机制。如果未提供,默认为
OpenAiEmbedding。(默认值:None)
- retrieve(keyword: str, limit: int = 3) List[ContextRecord][来源]#
根据关键词内容从向量数据库中检索相似记录。
- Parameters:
keyword (str) – 该字符串将被转换为向量表示形式以查询数据库。
limit (int, optional) – 要检索的相似消息的最大数量。(默认:
3).
- Returns:
- 从
向量数据库中检索出的与
current_state相似度相关的内存记录列表。
- Return type:
列表[ContextRecord]
- write_records(records: List[MemoryRecord]) None[来源]#
将提供的聊天消息转换为向量表示,并将其写入向量数据库。
- Parameters:
records (List[MemoryRecord]) – 要添加到内存中的内存记录。