Momento聊天消息历史#

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

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

参见 https://gomomento.com/

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

注意:要实例化传递给MomentoChatMessageHistory的缓存客户端,您必须在https://gomomento.com/上拥有一个Momento账户。

Parameters:
  • session_id (str) – 用于此聊天会话的会话ID。

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

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

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

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

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

Raises:
  • ImportError – 未安装Momento python包。

  • TypeError – cache_client 不是 momento.CacheClientObject 类型

属性

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: timedelta | None = None, ensure_cache_exists: bool = True)[源代码]#

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

注意:要实例化传递给MomentoChatMessageHistory的缓存客户端,您必须在https://gomomento.com/上拥有一个Momento账户。

Parameters:
  • session_id (str) – 用于此聊天会话的会话ID。

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

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

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

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

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

Raises:
  • ImportError – 未安装Momento python包。

  • TypeError – cache_client 不是 momento.CacheClientObject 类型

async aadd_messages(messages: Sequence[BaseMessage]) None#

异步添加消息列表。

Parameters:

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

Return type:

async aclear() None#

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

Return type:

add_ai_message(message: AIMessage | str) None#

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

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

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

Parameters:

message (AIMessage | str) – 要添加的AI消息。

Return type:

add_message(message: BaseMessage) None[源代码]#

在缓存中存储一条消息。

Parameters:

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

Raises:
  • SdkException – Momento 服务或网络错误。

  • 异常 – 意外的响应。

Return type:

add_messages(messages: Sequence[BaseMessage]) None#

添加消息列表。

实现应重写此方法,以高效地处理消息的批量添加,避免对底层存储进行不必要的往返。

Parameters:

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

Return type:

add_user_message(message: HumanMessage | str) None#

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

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

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

Parameters:

message (HumanMessage | str) – 要添加到存储中的人类消息。

Return type:

async aget_messages() list[BaseMessage]#

获取消息的异步版本。

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

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

Return type:

列表[BaseMessage]

clear() None[source]#

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

Raises:
  • SdkException – Momento 服务或网络错误。

  • 异常 – 意外的响应。

Return type:

classmethod from_client_params(session_id: str, cache_name: str, ttl: timedelta, *, configuration: momento.config.Configuration | None = None, api_key: str | None = None, auth_token: str | None = None, **kwargs: Any) MomentoChatMessageHistory[source]#

从CacheClient参数构建缓存。

Parameters:
  • session_id (str)

  • cache_name (str)

  • ttl (timedelta)

  • 配置 (可选[momento.config.Configuration])

  • api_key (可选[str])

  • auth_token (可选[str])

  • kwargs (Any)

Return type:

MomentoChatMessageHistory

使用 MomentoChatMessageHistory 的示例