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)向存储器添加人类消息字符串的便捷方法。
获取消息的异步版本。
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
- 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]