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作为后端缓存的聊天信息历史。
创建一个使用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)向存储添加人类消息字符串的便捷方法。
获取消息的异步版本。
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]
- 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) –
- 返回类型