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: 
我是一个人工智能助手,旨在回答问题和提供信息。如果你有任何问题或需要帮助,请随时告诉我!
"""
相关推荐
奇特認3 小时前
mysql 集群技术 3.高可用之 MHA
数据库·mysql
Bioinfo Guy6 小时前
高分Panel复现系列|转录因子网络太乱?用模块框把重点圈出来
数据库·生物信息学·生信可视化
ltl7 小时前
Disaggregated DB 合集:Socrates、PolarDB、Taurus 的共同模式
数据库
Blossom i9 小时前
大数据预处理与采集实验一:使用Python操作MySQL数据库
数据库·mysql
雾时之林10 小时前
Linux--软件管理、源码包安装
linux·服务器·数据库
65岁退休Coder11 小时前
LangChain v1.3.4 笔记 - 07 补充:链式调用 LCEL
后端·python·langchain
老纪的技术唠嗑局11 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE12 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
AI大模型-小雄12 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
少晓年13 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql