Redis聊天消息历史#
- class langchain_community.chat_message_histories.redis.RedisChatMessageHistory(session_id: str, url: str = 'redis://localhost:6379/0', key_prefix: str = 'message_store:', ttl: int | None = None)[source]#
聊天消息历史存储在Redis数据库中。
- Setup:
安装
redis
Python 包。pip install redis
- Instantiate:
从langchain_community.chat_message_histories导入RedisChatMessageHistory
- history = RedisChatMessageHistory(
session_id = “your-session-id”, url=”redis://your-host:your-port:your-database”, # redis://localhost:6379/0
)
- Add and retrieve messages:
# Add single message history.add_message(message) # Add batch messages history.add_messages([message1, message2, message3, ...]) # Add human message history.add_user_message(human_message) # Add ai message history.add_ai_message(ai_message) # Retrieve messages messages = history.messages
使用 RedisChatMessageHistory 实例进行初始化。
- Parameters:
session_id (str) – str 单个聊天会话的ID。用于与key_prefix形成键。
url (str) – Optional[str] 用于连接到redis的字符串参数配置。
key_prefix (str) – Optional[str] 键的前缀,与session id结合形成键。
ttl (int | None) – Optional[int] 设置key的过期时间,单位为秒。
属性
key
构造要使用的记录键
messages
从Redis中检索消息
方法
__init__
(session_id[, url, key_prefix, ttl])使用 RedisChatMessageHistory 实例进行初始化。
aadd_messages
(messages)异步添加消息列表。
aclear
()异步从存储中移除所有消息
add_ai_message
(message)用于将AI消息字符串添加到存储中的便捷方法。
add_message
(message)将消息附加到Redis中的记录
add_messages
(messages)添加消息列表。
add_user_message
(message)用于将人类消息字符串添加到存储中的便捷方法。
获取消息的异步版本。
clear
()从Redis中清除会话内存
- __init__(session_id: str, url: str = 'redis://localhost:6379/0', key_prefix: str = 'message_store:', ttl: int | None = None)[source]#
使用 RedisChatMessageHistory 实例进行初始化。
- Parameters:
session_id (str) – str 单个聊天会话的ID。用于与key_prefix形成键。
url (str) – Optional[str] 用于连接到redis的字符串参数配置。
key_prefix (str) – Optional[str] 键的前缀,与session id结合形成键。
ttl (int | None) – Optional[int] 设置key的过期时间,单位为秒。
- async aadd_messages(messages: Sequence[BaseMessage]) None #
异步添加消息列表。
- Parameters:
messages (Sequence[BaseMessage]) – 要存储的BaseMessage对象序列。
- Return type:
无
- async aclear() None #
异步从存储中移除所有消息
- Return type:
无
- add_ai_message(message: AIMessage | str) None #
向存储中添加AI消息字符串的便捷方法。
请注意,这是一个便捷方法。代码应优先使用批量 add_messages 接口,以减少与底层持久层的往返次数。
此方法可能在未来的版本中被弃用。
- Parameters:
message (AIMessage | str) – 要添加的AI消息。
- Return type:
无
- add_message(message: BaseMessage) None [source]#
将消息附加到Redis中的记录
- Parameters:
消息 (BaseMessage)
- Return type:
无
- add_messages(messages: Sequence[BaseMessage]) None #
添加消息列表。
实现应重写此方法,以高效地处理消息的批量添加,避免对底层存储进行不必要的往返。
- 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]
使用 RedisChatMessageHistory 的示例