langchain_community.chat_message_histories.redis.RedisChatMessageHistory¶
- class langchain_community.chat_message_histories.redis.RedisChatMessageHistory(session_id: str, url: str = 'redis://:6379/0', key_prefix: str = 'message_store:', ttl: Optional[int] = None)[source]¶
- 存储在 Redis 数据库中的聊天消息历史。 - 设置
- 安装 - redisPython 套件。- 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://: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://: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 列表