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值会在创建上下文时保留更多历史消息。

clear() None[来源]#

清除内存中的所有聊天消息。

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)

clear() 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会导致在上下文创建过程中保留历史消息的可能性更高。

clear() None[来源]#

清除内存中的所有聊天消息。

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)

clear() 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]) – 要添加到内存中的内存记录。