AstraDBChatMessageHistory#
- class langchain_community.chat_message_histories.astradb.AstraDBChatMessageHistory(*, session_id: str, collection_name: str = 'langchain_message_store', token: str | None = None, api_endpoint: str | None = None, astra_db_client: AstraDB | None = None, async_astra_db_client: AsyncAstraDB | None = None, namespace: str | None = None, setup_mode: SetupMode = SetupMode.SYNC, pre_delete_collection: bool = False)[source]#
自版本 0.0.25 起已弃用:请改用
:class:`~langchain_astradb.AstraDBChatMessageHistory`
。在 langchain-community==1.0 之前不会移除。在Astra DB中存储历史的聊天消息历史。
- Parameters:
session_id (str) – 用于存储单个聊天会话消息的任意键。
collection_name (str) – 要创建/使用的Astra DB集合的名称。
token (可选[str]) – 用于Astra DB的API令牌。
api_endpoint (可选[str]) – API端点的完整URL, 例如“https://
-us-east1.apps.astra.datastax.com”。 astra_db_client (可选[AstraDB]) – 替代 token+api_endpoint, 你可以传递一个已经创建的 'astrapy.db.AstraDB' 实例。
async_astra_db_client (Optional[AsyncAstraDB]) – 替代token+api_endpoint, 你可以传递一个已经创建的‘astrapy.db.AsyncAstraDB’实例。
namespace (可选[str]) – 创建集合的命名空间(也称为keyspace)。默认为数据库的“默认命名空间”。
setup_mode (SetupMode) – 用于创建Astra DB集合的模式(SYNC、ASYNC或OFF)。
pre_delete_collection (bool) – 是否在创建集合之前删除它。如果为False且集合已存在,则直接使用该集合。
属性
messages
从数据库中检索所有会话消息
方法
__init__
(*, session_id[, collection_name, ...])将聊天消息历史存储在Astra DB中的聊天消息历史。
aadd_messages
(messages)异步添加消息列表。
aclear
()异步从存储中移除所有消息
add_ai_message
(message)用于将AI消息字符串添加到存储中的便捷方法。
add_message
(message)将消息对象添加到存储中。
add_messages
(messages)添加消息列表。
add_user_message
(message)用于将人类消息字符串添加到存储中的便捷方法。
获取消息的异步版本。
clear
()从存储中移除所有消息
- __init__(*, session_id: str, collection_name: str = 'langchain_message_store', token: str | None = None, api_endpoint: str | None = None, astra_db_client: AstraDB | None = None, async_astra_db_client: AsyncAstraDB | None = None, namespace: str | None = None, setup_mode: SetupMode = SetupMode.SYNC, pre_delete_collection: bool = False) None [来源]#
在Astra DB中存储历史的聊天消息历史。
- Parameters:
session_id (str) – 用于存储单个聊天会话消息的任意键。
collection_name (str) – 要创建/使用的Astra DB集合的名称。
token (可选[str]) – 用于Astra DB的API令牌。
api_endpoint (可选[str]) – API端点的完整URL, 例如“https://
-us-east1.apps.astra.datastax.com”。 astra_db_client (可选[AstraDB]) – 替代 token+api_endpoint, 你可以传递一个已经创建的 'astrapy.db.AstraDB' 实例。
async_astra_db_client (Optional[AsyncAstraDB]) – 替代token+api_endpoint, 你可以传递一个已经创建的‘astrapy.db.AsyncAstraDB’实例。
namespace (可选[str]) – 创建集合的命名空间(也称为keyspace)。默认为数据库的“默认命名空间”。
setup_mode (SetupMode) – 用于创建Astra DB集合的模式(SYNC、ASYNC或OFF)。
pre_delete_collection (bool) – 是否在创建集合之前删除它。如果为False且集合已存在,则直接使用该集合。
- Return type:
无
- async aadd_messages(messages: Sequence[BaseMessage]) None [source]#
异步添加消息列表。
- Parameters:
messages (Sequence[BaseMessage]) – 要存储的BaseMessage对象序列。
- 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) – 一个用于存储的BaseMessage对象。
- Raises:
NotImplementedError – 如果子类没有实现一个有效的 add_messages 方法。
- 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]
使用 AstraDBChatMessageHistory 的示例