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: timedelta | None = None, ensure_cache_exists: bool = True)[source]#
Chat message history cache that uses Momento as a backend.
Instantiate a chat message history cache that uses Momento as a backend.
Note: to instantiate the cache client passed to MomentoChatMessageHistory, you must have a Momento account at https://gomomento.com/.
- Parameters:
session_id (str) – The session ID to use for this chat session.
cache_client (CacheClient) – The Momento cache client.
cache_name (str) – The name of the cache to use to store the messages.
key_prefix (str, optional) – The prefix to apply to the cache key. Defaults to “message_store:”.
ttl (Optional[timedelta], optional) – The TTL to use for the messages. Defaults to None, ie the default TTL of the cache will be used.
ensure_cache_exists (bool, optional) – Create the cache if it doesn’t exist. Defaults to True.
- Raises:
ImportError – Momento python package is not installed.
TypeError – cache_client is not of type momento.CacheClientObject
Attributes
messages
Retrieve the messages from Momento.
Methods
__init__
(session_id, cache_client, cache_name, *)Instantiate a chat message history cache that uses Momento as a backend.
aadd_messages
(messages)Async add a list of messages.
aclear
()Async remove all messages from the store
add_ai_message
(message)Convenience method for adding an AI message string to the store.
add_message
(message)Store a message in the cache.
add_messages
(messages)Add a list of messages.
add_user_message
(message)Convenience method for adding a human message string to the store.
Async version of getting messages.
clear
()Remove the session's messages from the cache.
from_client_params
(session_id, cache_name, ...)Construct cache from CacheClient parameters.
- __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)[source]#
Instantiate a chat message history cache that uses Momento as a backend.
Note: to instantiate the cache client passed to MomentoChatMessageHistory, you must have a Momento account at https://gomomento.com/.
- Parameters:
session_id (str) – The session ID to use for this chat session.
cache_client (CacheClient) – The Momento cache client.
cache_name (str) – The name of the cache to use to store the messages.
key_prefix (str, optional) – The prefix to apply to the cache key. Defaults to “message_store:”.
ttl (Optional[timedelta], optional) – The TTL to use for the messages. Defaults to None, ie the default TTL of the cache will be used.
ensure_cache_exists (bool, optional) – Create the cache if it doesn’t exist. Defaults to True.
- Raises:
ImportError – Momento python package is not installed.
TypeError – cache_client is not of type momento.CacheClientObject
- async aadd_messages(messages: Sequence[BaseMessage]) None #
Async add a list of messages.
- Parameters:
messages (Sequence[BaseMessage]) – A sequence of BaseMessage objects to store.
- Return type:
None
- async aclear() None #
Async remove all messages from the store
- Return type:
None
- add_ai_message(message: AIMessage | str) None #
Convenience method for adding an AI message string to the store.
Please note that this is a convenience method. Code should favor the bulk add_messages interface instead to save on round-trips to the underlying persistence layer.
This method may be deprecated in a future release.
- Parameters:
message (AIMessage | str) – The AI message to add.
- Return type:
None
- add_message(message: BaseMessage) None [source]#
Store a message in the cache.
- Parameters:
message (BaseMessage) – The message object to store.
- Raises:
SdkException – Momento service or network error.
Exception – Unexpected response.
- Return type:
None
- add_messages(messages: Sequence[BaseMessage]) None #
Add a list of messages.
Implementations should over-ride this method to handle bulk addition of messages in an efficient manner to avoid unnecessary round-trips to the underlying store.
- Parameters:
messages (Sequence[BaseMessage]) – A sequence of BaseMessage objects to store.
- Return type:
None
- add_user_message(message: HumanMessage | str) None #
Convenience method for adding a human message string to the store.
Please note that this is a convenience method. Code should favor the bulk add_messages interface instead to save on round-trips to the underlying persistence layer.
This method may be deprecated in a future release.
- Parameters:
message (HumanMessage | str) – The human message to add to the store.
- Return type:
None
- async aget_messages() list[BaseMessage] #
Async version of getting messages.
Can over-ride this method to provide an efficient async implementation.
In general, fetching messages may involve IO to the underlying persistence layer.
- Return type:
list[BaseMessage]
- clear() None [source]#
Remove the session’s messages from the cache.
- Raises:
SdkException – Momento service or network error.
Exception – Unexpected response.
- Return type:
None
- 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]#
Construct cache from CacheClient parameters.
- Parameters:
session_id (str)
cache_name (str)
ttl (timedelta)
configuration (Optional[momento.config.Configuration])
api_key (Optional[str])
auth_token (Optional[str])
kwargs (Any)
- Return type:
Examples using MomentoChatMessageHistory