langchain_community.chat_message_histories.sql
.SQLChatMessageHistory¶
- class langchain_community.chat_message_histories.sql.SQLChatMessageHistory(session_id:str, connection_string:Optional[str] =None, table_name:str ='message_store', session_id_field_name:str ='session_id', custom_message_converter:Optional[BaseMessageConverter] =None, connection:Union[None,AsyncEngine,Engine,str] =None, engine_args:Optional[Dict[str,Any]] =None, async_mode:Optional[bool] =None)[源代码]¶
存储在 SQL 数据库中的聊天消息历史。
示例
from langchain_core.messages import HumanMessage from langchain_community.chat_message_histories import SQLChatMessageHistory # create sync sql message history by connection_string message_history = SQLChatMessageHistory( session_id='foo', connection_string='sqlite///:memory.db' ) message_history.add_message(HumanMessage("hello")) message_history.message # create async sql message history using aiosqlite # from sqlalchemy.ext.asyncio import create_async_engine # # async_engine = create_async_engine("sqlite+aiosqlite:///memory.db") # async_message_history = SQLChatMessageHistory( # session_id='foo', connection=async_engine, # ) # await async_message_history.aadd_message(HumanMessage("hello")) # await async_message_history.aget_messages()
使用 SQLChatMessageHistory 实例进行初始化。
- 参数
session_id (str)– 指示相同会话的 ID。
connection_string (可选str)– 连接到数据库的字符串参数配置。
table_name (str)– 用于保存数据的数据表名称。
session_id_field_name (str)– session_id 字段的名称。
custom_message_converter (Optional[BaseMessageConverter]) – 用于转换数据库数据和BaseMessage的自定义消息转换器
connection (Union[None, AsyncEngine, Engine, str]) – 数据库连接对象,可以是包含连接配置的字符串、Engine对象或AsyncEngine对象。
engine_args (Optional[Dict[str, Any]]) – 创建数据库引擎的附加配置。
async_mode (Optional[bool]) – 是否为异步连接。
属性
Session
自langchain-community==0.2.2版本以来已弃用: 请使用
session_maker
代替。messages
从数据库检索所有消息
方法
__init__
(session_id[, connection_string, ...])使用 SQLChatMessageHistory 实例进行初始化。
aadd_message
(message)将消息对象添加到存储中。
aadd_messages
(messages)异步添加消息列表。
aclear
()从数据库中清除会话内存
add_ai_message
(message)用于将AI消息字符串添加到存储的便捷方法。
add_message
(message)将消息追加到数据库中的记录
add_messages
(messages)添加消息列表。
add_user_message
(message)用于将人工消息字符串添加到存储的便捷方法。
从数据库检索所有消息
clear
()从数据库中清除会话内存
- (session_id: str, connection_string: Optional[str] = None, table_name: str = 'message_store', session_id_field_name: str = 'session_id', custom_message_converter: Optional[BaseMessageConverter] = None, connection: Union[None, AsyncEngine, Engine, str] = None, engine_args: Optional[Dict[str, Any]] = None, async_mode: Optional[bool] = None)[source]¶
使用 SQLChatMessageHistory 实例进行初始化。
- 参数
session_id (str)– 指示相同会话的 ID。
connection_string (可选str)– 连接到数据库的字符串参数配置。
table_name (str)– 用于保存数据的数据表名称。
session_id_field_name (str)– session_id 字段的名称。
custom_message_converter (Optional[BaseMessageConverter]) – 用于转换数据库数据和BaseMessage的自定义消息转换器
connection (Union[None, AsyncEngine, Engine, str]) – 数据库连接对象,可以是包含连接配置的字符串、Engine对象或AsyncEngine对象。
engine_args (Optional[Dict[str, Any]]) – 创建数据库引擎的附加配置。
async_mode (Optional[bool]) – 是否为异步连接。
- async aadd_message(message: BaseMessage) None [source]¶
将消息对象添加到存储中。
- 参数
message (BaseMessage) – 要存储的 BaseMessage 对象。
- 返回类型
None
- async aadd_messages(messages: Sequence[BaseMessage]) None [source]¶
异步添加消息列表。
- 参数
messages (Sequence[BaseMessage]) – 要存储的 BaseMessage 对象序列。
- 返回类型
None
- add_ai_message(message: Union[AIMessage, str]) None ¶
用于将AI消息字符串添加到存储的便捷方法。
请注意,这是一个便捷方法。代码应优先使用批量添加 messages 接口,以减少到底层持久化层的往返。
该方法可能在未来的版本中被弃用。
- 参数
message (Union[AIMessage, str]) – 要添加的 AI 信息。
- 返回类型
None
- add_message(message: BaseMessage) None [source]¶
将消息追加到数据库中的记录
- 参数
message (BaseMessage) –
- 返回类型
None
- add_messages(messages: Sequence[BaseMessage]) None [source]¶
添加消息列表。
实现应覆盖此方法,以高效地处理批量添加消息,避免对底层存储的不必要往返。
- 参数
messages (Sequence[BaseMessage]) – 要存储的 BaseMessage 对象序列。
- 返回类型
None
- add_user_message(message: Union[HumanMessage, str]) None
用于将人工消息字符串添加到存储的便捷方法。
请注意,这是一个便捷方法。代码应优先使用批量添加 messages 接口,以减少到底层持久化层的往返。
该方法可能在未来的版本中被弃用。
- 参数
message (Union[HumanMessage, str]) – 添加到存储中的人类消息。
- 返回类型
None
- async aget_messages() List[BaseMessage]
从数据库检索所有消息
- 返回类型
List[BaseMessage]
- clear() None
从数据库中清除会话内存
- 返回类型
None
- get_messages() List[BaseMessage]
- 返回类型
List[BaseMessage]