AstraDBChatMessageHistory#

class langchain_astradb.chat_message_histories.AstraDBChatMessageHistory(*, session_id: str, collection_name: str = 'langchain_message_store', token: str | TokenProvider | None = None, api_endpoint: str | None = None, namespace: str | None = None, environment: str | None = None, setup_mode: SetupMode = SetupMode.SYNC, pre_delete_collection: bool = False, ext_callers: list[tuple[str | None, str | None] | str | None] | None = None, astra_db_client: AstraDB | None = None, async_astra_db_client: AsyncAstraDB | None = None)[source]#

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

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

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

  • token (str | TokenProvider | None) – 用于Astra DB的API令牌,可以是字符串形式,也可以是astrapy.authentication.TokenProvider的子类。如果未提供,则会检查环境变量ASTRA_DB_APPLICATION_TOKEN。

  • api_endpoint (str | None) – API端点的完整URL,例如 https://-us-east1.apps.astra.datastax.com。如果未提供, 则检查环境变量 ASTRA_DB_API_ENDPOINT。

  • namespace (str | None) – 创建集合的命名空间(也称为keyspace)。 如果未提供,则检查环境变量 ASTRA_DB_KEYSPACE。 默认为数据库的“默认命名空间”。

  • environment (str | None) – 一个字符串,指定目标数据API的环境。 如果省略,默认为“prod”(Astra DB生产环境)。 其他值在astrapy.constants.Environment枚举类中。

  • setup_mode (SetupMode) – 用于创建Astra DB集合的模式(SYNC、ASYNC或OFF)。

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

  • ext_callers (list[tuple[str | None, str | None] | str | None] | None) – 一个或多个调用者身份,用于在User-Agent头中标识Data API调用。这是一个(名称,版本)对的列表,如果没有提供版本信息,则只是字符串,如果提供,将成为与此组件相关的所有API请求中User-Agent字符串的前导部分。

  • astra_db_client (AstraDB | None) – 从版本0.3.5开始已弃用。 请使用‘token’、‘api_endpoint’以及可选的‘environment’。 你可以传递一个已经创建的‘astrapy.db.AstraDB’实例 (作为‘token’、‘api_endpoint’和‘environment’的替代方案)。

  • async_astra_db_client (AsyncAstraDB | None) – 从版本0.3.5开始已弃用。 请使用‘token’、‘api_endpoint’和可选的‘environment’。 你可以传递一个已经创建的‘astrapy.db.AsyncAstraDB’实例 (作为‘token’、‘api_endpoint’和‘environment’的替代)。

属性

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)

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

aget_messages()

获取消息的异步版本。

clear()

从存储中移除所有消息

__init__(*, session_id: str, collection_name: str = 'langchain_message_store', token: str | TokenProvider | None = None, api_endpoint: str | None = None, namespace: str | None = None, environment: str | None = None, setup_mode: SetupMode = SetupMode.SYNC, pre_delete_collection: bool = False, ext_callers: list[tuple[str | None, str | None] | str | None] | None = None, astra_db_client: AstraDB | None = None, async_astra_db_client: AsyncAstraDB | None = None) None[source]#

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

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

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

  • token (str | TokenProvider | None) – 用于Astra DB的API令牌,可以是字符串形式,也可以是astrapy.authentication.TokenProvider的子类。如果未提供,则会检查环境变量ASTRA_DB_APPLICATION_TOKEN。

  • api_endpoint (str | None) – API端点的完整URL,例如 https://-us-east1.apps.astra.datastax.com。如果未提供, 则检查环境变量 ASTRA_DB_API_ENDPOINT。

  • namespace (str | None) – 创建集合的命名空间(也称为keyspace)。 如果未提供,则检查环境变量 ASTRA_DB_KEYSPACE。 默认为数据库的“默认命名空间”。

  • environment (str | None) – 一个字符串,指定目标数据API的环境。 如果省略,默认为“prod”(Astra DB生产环境)。 其他值在astrapy.constants.Environment枚举类中。

  • setup_mode (SetupMode) – 用于创建Astra DB集合的模式(SYNC、ASYNC或OFF)。

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

  • ext_callers (list[tuple[str | None, str | None] | str | None] | None) – 一个或多个调用者身份,用于在User-Agent头中标识Data API调用。这是一个(名称,版本)对的列表,如果没有提供版本信息,则只是字符串,如果提供,将成为与此组件相关的所有API请求中User-Agent字符串的前导部分。

  • astra_db_client (AstraDB | None) – 从版本0.3.5开始已弃用。 请使用‘token’、‘api_endpoint’以及可选的‘environment’。 你可以传递一个已经创建的‘astrapy.db.AstraDB’实例 (作为‘token’、‘api_endpoint’和‘environment’的替代方案)。

  • async_astra_db_client (AsyncAstraDB | None) – 从版本0.3.5开始已弃用。 请使用‘token’、‘api_endpoint’和可选的‘environment’。 你可以传递一个已经创建的‘astrapy.db.AsyncAstraDB’实例 (作为‘token’、‘api_endpoint’和‘environment’的替代)。

Return type:

async aadd_messages(messages: Sequence[BaseMessage]) None[source]#

异步添加消息列表。

Parameters:

messages (Sequence[BaseMessage]) – 要存储的BaseMessage对象序列。

Return type:

async aclear() None[source]#

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

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[source]#

添加消息列表。

实现应重写此方法,以高效地处理消息的批量添加,避免对底层存储进行不必要的往返。

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]#

从存储中移除所有消息

Return type:

使用 AstraDBChatMessageHistory 的示例