langchain_astradb.chat_message_histories.AstraDBChatMessageHistory

class langchain_astradb.chat_message_histories.AstraDBChatMessageHistory(*, session_id: str, collection_name: str = 'langchain_message_store', token: Optional[Union[str, TokenProvider]] = None, api_endpoint: Optional[str] = None, environment: 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]

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

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

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

  • token (可选[联合[str, TokenProvider]]) – Astra DB使用的API令牌,可以是字符串形式或astrapy.authentication.TokenProvider的子类。如果没有提供,则检查环境变量ASTRA_DB_APPLICATION_TOKEN。

  • api_endpoint (可选[str]) – API端点的完整URL,例如https://<DB-ID>-us-east1.apps.astra.datastax.com。如果没有提供,则检查环境变量ASTRA_DB_API_ENDPOINT。

  • environment (可选[str]) – 指定目标Data API的环境的字符串。如果省略,则默认为“prod”(Astra DB生产)。其他值在astrapy.constants.Environment枚举类中。

  • astra_db_client (可选[AstraDB]) – 从版本0.3.5开始已弃用。 请使用'token','api_endpoint'和可选的'environment'。您可以传递已创建的 'astrapy.db.AstraDB' 实例(作为'token','api_endpoint'和'environment'的替代)。

  • async_astra_db_client (可选[AsyncAstraDB]) – 从版本0.3.5开始已弃用。 请使用'token','api_endpoint'和可选的'environment'。您可以传递已创建的 'astrapy.db.AsyncAstraDB' 实例(作为'token','api_endpoint'和'environment'的替代)。

  • namespace (可选[str]) – 创建集合的名称空间(也称为键空间)。如果没有提供,则检查环境变量ASTRA_DB_KEYSPACE。默认为数据库的“默认名称空间”。

  • setup_mode (SetupMode) –

  • pre_delete_collection (bool) –

属性

messages

从DB中检索所有会话消息

方法

__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: Optional[Union[str, TokenProvider]] = None, api_endpoint: Optional[str] = None, environment: 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[source]

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

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

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

  • token (可选[联合[str, TokenProvider]]) – Astra DB使用的API令牌,可以是字符串形式或astrapy.authentication.TokenProvider的子类。如果没有提供,则检查环境变量ASTRA_DB_APPLICATION_TOKEN。

  • api_endpoint (可选[str]) – API端点的完整URL,例如https://<DB-ID>-us-east1.apps.astra.datastax.com。如果没有提供,则检查环境变量ASTRA_DB_API_ENDPOINT。

  • environment (可选[str]) – 指定目标Data API的环境的字符串。如果省略,则默认为“prod”(Astra DB生产)。其他值在astrapy.constants.Environment枚举类中。

  • astra_db_client (可选[AstraDB]) – 自 0.3.5 版本开始已弃用。请使用 'token','api_endpoint' 以及可选的 'environment'。你可以传递一个已创建的 'astrapy.db.AstraDB' 实例(作为 'token','api_endpoint' 和 'environment' 的替代品)。

  • async_astra_db_client (可选[AsyncAstraDB]) – 从版本0.3.5开始已弃用。 请使用'token','api_endpoint'和可选的'environment'。您可以传递已创建的 'astrapy.db.AsyncAstraDB' 实例(作为'token','api_endpoint'和'environment'的替代)。

  • namespace (可选[str]) – 创建集合的名称空间(也称为键空间)。如果没有提供,则检查环境变量ASTRA_DB_KEYSPACE。默认为数据库的“默认名称空间”。

  • setup_mode (SetupMode) –

  • pre_delete_collection (bool) –

返回类型

None

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

异步添加一系列消息。

参数

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

返回类型

None

async aclear() None[source]

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

返回类型

None

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

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

请注意,这是一个便利方法。代码应优先使用批量 add_messages 接口,以节省对底层持久化层的往返。

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

参数

message (Union[AIMessage, str]) – 要添加的 AI 消息。

返回类型

None

add_message(message: BaseMessage) None

将消息对象添加到存储器。

参数

message (BaseMessage) – 要存储的 BaseMessage 对象。

异常

NotImplementedError – 如果子类没有实现高效的消息添加方法。

返回类型

None

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

添加一系列消息。

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

参数

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

获取消息的异步版本。

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

通常,获取消息可能涉及到底层持久层的I/O操作。

返回类型

List[BaseMessage]

clear() None[source]

从存储器中移除所有消息

返回类型

None

使用 AstraDBChatMessageHistory 的示例