langchain_community.chat_message_histories.sql.SQLChatMessageHistory

class langchain_community.chat_message_histories.sql.SQLChatMessageHistorysession_idstrconnection_stringOptional[str] =Nonetable_namestr ='message_store'session_id_field_namestr ='session_id'custom_message_converterOptional[BaseMessageConverter] =NoneconnectionUnion[NoneAsyncEngineEnginestr] =Noneengine_argsOptional[Dict[strAny]] =Noneasync_modeOptional[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_idstr)– 指示相同会话的 ID。

  • connection_string可选str)– 连接到数据库的字符串参数配置。

  • table_namestr)– 用于保存数据的数据表名称。

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

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

aget_messages()

从数据库检索所有消息

clear()

从数据库中清除会话内存

get_messages()

(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_idstr)– 指示相同会话的 ID。

  • connection_string可选str)– 连接到数据库的字符串参数配置。

  • table_namestr)– 用于保存数据的数据表名称。

  • session_id_field_namestr)– 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]

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

参数

messageBaseMessage) – 要存储的 BaseMessage 对象。

返回类型

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消息字符串添加到存储的便捷方法。

请注意,这是一个便捷方法。代码应优先使用批量添加 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]

SQLChatMessageHistory 的示例使用