langchain_community.chat_message_histories.momento.MomentoChatMessageHistory

class langchain_community.chat_message_histories.momento.MomentoChatMessageHistory(session_id: str, cache_client: momento.CacheClient, cache_name: str, *, key_prefix: str = 'message_store:', ttl: Optional[timedelta] = None, ensure_cache_exists: bool = True)[source]

使用Momento作为后端缓存的聊天信息历史。

详见:https://gomomento.com/

创建一个使用Momento作为后端的聊天信息历史缓存实例。

注意:要创建传递给MomentoChatMessageHistory的缓存客户端,您必须拥有https://gomomento.com/上的Momento账户。

参数
  • session_id (str) – 要使用的聊天会话的会话ID。

  • cache_client (CacheClient) – Momento缓存客户端。

  • cache_name (str) – 要用于存储消息的缓存名称。

  • key_prefix (str, 可选) – 应应用于缓存键的前缀。默认为“message_store:”。

  • ttl (可选[timedelta], 可选) – 消息的TTL。默认为None,即使用缓存的默认TTL。

  • ensure_cache_exists (bool, 可选) – 如果不存在,创建缓存。默认为True。

抛出
  • ImportError – Momento Python包未安装。

  • TypeError – cache_client不是momento.CacheClient类型。

属性

messages

从Momento检索消息。

方法

__init__(session_id, cache_client, cache_name, *)

创建一个使用Momento作为后端的聊天信息历史缓存实例。

aadd_messages(messages)

异步添加消息列表。

aclear()

异步从存储中移除所有消息

add_ai_message(message)

将AI消息字符串添加到存储中的便捷方法。

add_message(message)

将消息存储在缓存中。

add_messages(messages)

添加消息列表。

add_user_message(message)

向存储添加人类消息字符串的便捷方法。

aget_messages()

获取消息的异步版本。

clear()

从缓存中移除会话的消息。

from_client_params(session_id, cache_name, ...)

从CacheClient参数构建缓存。

__init__(session_id: str, cache_client: momento.CacheClient, cache_name: str, *, key_prefix: str = 'message_store:', ttl: Optional[timedelta] = None, ensure_cache_exists: bool = True)[source]

创建一个使用Momento作为后端的聊天信息历史缓存实例。

注意:要创建传递给MomentoChatMessageHistory的缓存客户端,您必须拥有https://gomomento.com/上的Momento账户。

参数
  • session_id (str) – 要使用的聊天会话的会话ID。

  • cache_client (CacheClient) – Momento缓存客户端。

  • cache_name (str) – 要用于存储消息的缓存名称。

  • key_prefix (str, 可选) – 应应用于缓存键的前缀。默认为“message_store:”。

  • ttl (可选[timedelta], 可选) – 消息的TTL。默认为None,即使用缓存的默认TTL。

  • ensure_cache_exists (bool, 可选) – 如果不存在,创建缓存。默认为True。

抛出
  • ImportError – Momento Python包未安装。

  • TypeError – cache_client不是momento.CacheClient类型。

async aadd_messages(messages: Sequence[BaseMessage]) None

异步添加消息列表。

参数

messages (Sequence[BaseMessage]) – 要存储的BaseMessage对象序列。

返回类型

None

async aclear() None

异步从存储中移除所有消息

返回类型

None

add_ai_message(message: Union[AIMessage, str]) None

将AI消息字符串添加到存储中的便捷方法。

请注意,这是一个便捷方法。代码应优先使用批量add_messages接口以节省对底层持久化层往返的次数。

此方法可能在未来的版本中被弃用。

参数

message (Union[AIMessage, str]) – 要添加的AI消息。

返回类型

None

add_message(message: BaseMessage) None[source]

将消息存储在缓存中。

参数

message (BaseMessage) – 要存储的消息对象。

抛出
  • SdkException – Momento服务或网络错误。

  • Exception – 非预期响应。

返回类型

None

add_messages(messages: Sequence[BaseMessage]) None

添加消息列表。

实现应覆盖此方法,以高效处理大量消息的添加,从而避免对底层存储的频繁往返。

参数

messages (Sequence[BaseMessage]) – 要存储的BaseMessage对象序列。

返回类型

None

add_user_message(message: Union[HumanMessage, str]) None

向存储添加人类消息字符串的便捷方法。

请注意,这是一个便捷方法。代码应优先使用批量add_messages接口以节省对底层持久化层往返的次数。

此方法可能在未来的版本中被弃用。

参数

message (Union[HumanMessage, str]) – 要存储到存储中的人类消息。

返回类型

None

async aget_messages() List[BaseMessage]

获取消息的异步版本。

可以重写此方法以提供高效的异步实现。

通常,获取消息可能涉及到底层持久层的I/O操作。

返回类型

List[BaseMessage]

clear() None[source]

从缓存中删除会话的消息。

抛出
  • SdkException – Momento服务或网络错误。

  • Exception – 非预期响应。

返回类型

None

classmethod from_client_params(session_id: str, cache_name: str, ttl: timedelta, **kwargs: Any) MomentoChatMessageHistory[source]

从CacheClient参数构建缓存。

参数
  • session_id (str) –

  • cache_name (str) –

  • ttl (timedelta) –

  • configuration (Optional[momento.config.Configuration]) –

  • api_key (Optional[str]) –

  • auth_token (Optional[str]) –

  • kwargs (Any) –

返回类型

MomentoChatMessageHistory

使用 MomentoChatMessageHistory 的示例