langchain_community.chat_message_histories.redis
.RedisChatMessageHistory¶
- class langchain_community.chat_message_histories.redis.RedisChatMessageHistory(session_id: str, url: str = 'redis://localhost:6379/0', key_prefix: str = 'message_store:', ttl: Optional[int] = None)[source]¶
存储在 Redis 数据库中的聊天消息历史。
- 设置
安装
redis
Python 套件。pip install redis
- 实例化
from langchain_community.chat_message_histories import RedisChatMessageHistory
- history = RedisChatMessageHistory(
session_id = “your-session-id”, url=”redis://your-host:your-port:your-database”, # redis://localhost:6379/0
)
- 添加和检索消息
# 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 实例进行初始化。
- 参数
session_id (str) – str 单次会话的 ID。用于与 key_prefix 结合形成键。
url (str) – Optional[str] 连接到 Redis 的字符串参数配置。
key_prefix (str) – Optional[str] 键的前缀,与 session_id 结合形成键。
ttl (Optional[int]) – Optional[int] 设置键的过期时间,单位是秒。
属性
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: Optional[int] = None)[source]¶
使用 RedisChatMessageHistory 实例进行初始化。
- 参数
session_id (str) – str 单次会话的 ID。用于与 key_prefix 结合形成键。
url (str) – Optional[str] 连接到 Redis 的字符串参数配置。
key_prefix (str) – Optional[str] 键的前缀,与 session_id 结合形成键。
ttl (Optional[int]) – Optional[int] 设置键的过期时间,单位是秒。
- async aadd_messages(messages: Sequence[BaseMessage]) None ¶
异步添加一系列消息。
- 参数
messages (Sequence[BaseMessage]) – 要存储的BaseMessage对象序列。
- 返回类型
None
- async aclear() None ¶
异步从存储中移除所有消息
- 返回类型
None
- add_ai_message(message: Union[AIMessage, str]) None ¶
向存储中添加 AI 消息字符串的便捷方法。
请注意,这是一个便利方法。代码应优先考虑批量add_messages界面,以减少对底层持久化层的往返。
这个方法可能在未来版本中被弃用。
- 参数
message (Union[AIMessage, str]) – 需要添加的AI消息。
- 返回类型
None
- add_message(message: BaseMessage) None [source]¶
将消息追加到 Redis 中的记录
- 参数
message (BaseMessage) –
- 返回类型
None
- add_messages(messages: Sequence[BaseMessage]) None ¶
添加一系列消息。
实现应重写此方法以高效处理消息的批量添加,从而避免不必要的底层存储往返。
- 参数
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] ¶
获取消息的异步版本。
可覆盖此方法以提供高效的异步实现。
通常,获取消息可能涉及到底层持久层的IO。
- 返回类型
BaseMessage 列表