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作为后端的聊天消息历史缓存。
实例化一个使用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)用于将人类消息字符串添加到存储中的便捷方法。
获取消息的异步版本。
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 的示例