LangChain&Redis记忆

LangChain&Redis记忆实现

基本功能实现:

python 复制代码
from langchain_redis import RedisChatMessageHistory
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="Qwen/Qwen3.5-35B-A3B",
    api_key="sk-xxx",
    base_url="https://api.siliconflow.cn/v1",
)

# 通过参数的session_id来明确记忆
history = RedisChatMessageHistory(session_id="test", redis_url="redis://x.x.x.x:6379/0")

# 第一轮聊天
history.add_user_message("你是谁?")
aimessage = llm.invoke(history.messages)
print("aimessage: \n{}".format(aimessage.content))
"""
aimessage: 
我是一个人工智能助手,旨在回答问题和提供信息。如果你有任何问题或需要帮助,请随时告诉我!
"""
history.add_message(aimessage)

# 第二轮聊天
history.add_user_message("请重复一遍")
aimessage2 = llm.invoke(history.messages)
print("aimessage2: \n{}".format(aimessage2.content))
"""
aimessage2: 
我是一个人工智能助手,旨在回答问题和提供信息。如果你有任何问题或需要帮助,请随时告诉我!
"""
history.add_message(aimessage2)

通过Runnable整合

python 复制代码
from langchain_core.runnables.history import RunnableWithMessageHistory
from langchain_redis import RedisChatMessageHistory
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="Qwen/Qwen3.5-35B-A3B",
    api_key="sk-xxx",
    base_url="https://api.siliconflow.cn/v1",
)

# 通过参数的session_id来明确记忆
history = RedisChatMessageHistory(session_id="test", redis_url="redis://x.x.x.x:6379/0")

runnable = RunnableWithMessageHistory(
    llm, 
    get_session_history=lambda: history,
)

aimessage1 = runnable.invoke({"text": "你是谁"})
print("aimessage1: \n{}".format(aimessage1.content))
"""
aimessage1: 
我是一个人工智能助手,旨在回答问题和提供信息。如果你有任何问题或需要帮助,请随时告诉我!
"""
aimessage2 = runnable.invoke({"text": "请再重复一次"})
print("aimessage2: \n{}".format(aimessage2.content))
"""
aimessage2: 
我是一个人工智能助手,旨在回答问题和提供信息。如果你有任何问题或需要帮助,请随时告诉我!
"""
相关推荐
代码探秘者2 小时前
【Redis】双写一致性:延迟双删 / 读写锁 / 异步通知 / Canal,一文全解
java·数据库·redis·后端·算法·缓存
西柚小萌新2 小时前
【数据库】--PostgreSQL 详细安装教程
数据库·postgresql
数据知道2 小时前
MongoDB 读写关注设置:一致性与性能的黄金平衡法则
数据库·mongodb
一渊之隔2 小时前
uniapp封装 SQLite数据库操作接口
数据库·uni-app
代码的奴隶(艾伦·耶格尔)2 小时前
Hbase GUI 可视化软件
大数据·数据库·hbase
快乐非自愿2 小时前
2026年Django生态现代化组件深度解析与实践
数据库·django·sqlite
それども2 小时前
SQL NOT EXISTS理解
数据库·sql
数据知道2 小时前
MongoDB链式复制:配置 Chained Replication 优化跨机房同步
数据库·mongodb
brucelee1862 小时前
芋道 Spring Boot 框架 + AWS S3 图片上传显示
java·开发语言·数据库