langchain_community.chat_message_histories.astradb.AstraDBChatMessageHistory

class langchain_community.chat_message_histories.astradb.AstraDBChatMessageHistory(*, session_id: str, collection_name: str = 'langchain_message_store', token: Optional[str] = None, api_endpoint: Optional[str] = None, astra_db_client: Optional[AstraDB] = None, async_astra_db_client: Optional[AsyncAstraDB] = None, namespace: Optional[str] = None, setup_mode: SetupMode = SetupMode.SYNC, pre_delete_collection: bool = False)[source]

自 0.0.25 版本以来已弃用: 请使用 langchain_astradb.AstraDBChatMessageHistory 代替。

存储在 Astra DB 中的聊天消息历史。

参数
  • session_id (str) – 任意键,用于存储单个聊天会话的消息。

  • collection_name (str) – 要创建/使用的 Astra DB 集合名称。

  • token (可选[str]) – Astra DB 使用 API 令牌。

  • api_endpoint (可选[str]) – API端点的完整URL,例如 "https://<DB-ID>-us-east1.apps.astra.datastax.com”。

  • astra_db_client (可选[AstraDB]) – 替代token+api_endpoint,您可以传递已创建的‘astrapy.db.AstraDB’实例。

  • async_astra_db_client (可选[AsyncAstraDB]) – 替代token+api_endpoint,您可以传递已创建的‘astrapy.db.AsyncAstraDB’实例。

  • namespace (可选[str]) – 创建集合的命名空间(也称为键空间)。默认为数据库的“默认命名空间”。

  • setup_mode (SetupMode) – 创建Astra DB集合时使用的模式(同步、异步或关闭)。

  • 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)

向存储中添加Message对象。

add_messages(messages)

添加消息列表。

add_user_message(message)

添加人类消息字符串到存储的便捷方法。

aget_messages()

获取消息的异步版本。

clear()

从存储中删除所有消息

__init__(*, session_id: str, collection_name: str = 'langchain_message_store', token: Optional[str] = None, api_endpoint: Optional[str] = None, astra_db_client: Optional[AstraDB] = None, async_astra_db_client: Optional[AsyncAstraDB] = None, namespace: Optional[str] = None, setup_mode: SetupMode = SetupMode.SYNC, pre_delete_collection: bool = False) None[源代码]

存储在 Astra DB 中的聊天消息历史。

参数
  • session_id (str) – 任意键,用于存储单个聊天会话的消息。

  • collection_name (str) – 要创建/使用的 Astra DB 集合名称。

  • token (可选[str]) – Astra DB 使用 API 令牌。

  • api_endpoint (可选[str]) – API端点的完整URL,例如 "https://<DB-ID>-us-east1.apps.astra.datastax.com”。

  • astra_db_client (可选[AstraDB]) – 替代token+api_endpoint,您可以传递已创建的‘astrapy.db.AstraDB’实例。

  • async_astra_db_client (可选[AsyncAstraDB]) – 替代token+api_endpoint,您可以传递已创建的‘astrapy.db.AsyncAstraDB’实例。

  • namespace (可选[str]) – 创建集合的命名空间(也称为键空间)。默认为数据库的“默认命名空间”。

  • setup_mode (SetupMode) – 创建Astra DB集合时使用的模式(同步、异步或关闭)。

  • pre_delete_collection (bool) – 是否在创建集合之前删除它。如果为False并且集合已存在,则将按原样使用该集合。

返回类型

None

async aadd_messages(messages: Sequence[BaseMessage]) None[源代码]

异步添加消息列表。

参数

messages(《消息) - 存储的BaseMessage对象序列。

返回类型

None

async aclear() None[source]

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

返回类型

None

add_ai_message(message: Union[AIMessage, str]) None

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

请注意,这是一个方便的方法。代码应优先选择批量添加的add_messages接口,以节省到基础持久层的往返通讯。

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

参数

message(《消息) - 要添加的AI消息。

返回类型

None

add_message(message: BaseMessage) None

向存储中添加Message对象。

参数

message(《消息) - 要存储的BaseMessage对象。

引发

NotImplementedError(《未实现错误) - 如果子类未实现高效add_messages方法。

返回类型

None

add_messages(messages: Sequence[BaseMessage]) None[source]

添加消息列表。

实现应该覆盖此方法,以高效处理消息的大量添加,以避免不必要的往返到基础存储。

参数

messages(《消息) - 存储的BaseMessage对象序列。

返回类型

None

add_user_message(message: 联合[HumanMessage, str]) None

添加人类消息字符串到存储的便捷方法。

请注意,这是一个方便的方法。代码应优先选择批量添加的add_messages接口,以节省到基础持久层的往返通讯。

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

参数

message (联合[HumanMessage, str]) – 要添加到存储中的人类消息。

返回类型

None

异步 aget_messages() 列表[BaseMessage][source]

获取消息的异步版本。

可以覆盖此方法以提供高效的异步实现。

一般情况下,获取消息可能涉及到底层持久化层的IO操作。

返回类型

列表[BaseMessage]

clear() None[source]

从存储中删除所有消息

返回类型

None

使用 AstraDBChatMessageHistory 的示例