当前位置: 首页 > news >正文

关于Langchain更新解决Memory的引用

结合我之前的文章,关于调用memory的部分改成如下所示(老版本也可用,只不过不适配新版本的Langchain)

langchain版本均采用最新版本,同时,Python版本要在3.10以上,详情可参考Langchain官方文档

from langchain_classic.memory import ConversationBufferMemory
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI
from langchain_core._api.deprecation import LangChainDeprecationWarning
import os
import dotenv
import warnings# from langgraph.checkpoint.memory import InMemorySaver #新版本的Memory的使用方法def My_Memory(msg:str)->str:warnings.filterwarnings('ignore', category=LangChainDeprecationWarning)dotenv.load_dotenv() # 加载api密钥api_key = os.environ.get('DEEPSEEK_API_KEY')my_model = ChatOpenAI(model='deepseek-chat',base_url='https://api.deepseek.com/',openai_api_key=api_key)warnings.filterwarnings('ignore', category=LangChainDeprecationWarning)# 防止旧版本不支持导致的警告memory = ConversationBufferMemory(memory_key='My_History', return_messages=True) #这里的My_History是我自己定义的ai记忆的名字prompts = ChatPromptTemplate.from_messages([# 注意这里的格式('角色', '提示词)('system','你现在是一个ai旅伴,你的名字叫Btta,现在你只需要回答用户的问题,不要说多余的话,不要说任何无关的内容'),MessagesPlaceholder(variable_name='My_History'),('human','{text}')])# 加载历史对话load_memory = RunnablePassthrough.assign(My_History = lambda x : memory.load_memory_variables({})['My_History'])# 构造链chain = load_memory | prompts | my_model | StrOutputParser()res = chain.invoke({'text':msg})#invoke({'text':msg})return res
http://www.jsqmd.com/news/39743/

相关文章:

  • win7 打开 icmp-ping 回显
  • 旋转矩阵在导航与机器人中的应用
  • JVM之锁优化(自旋锁 适应性自旋 锁消除 锁粗化 轻量级锁 偏向锁) - 教程
  • 面试官问:什么是Java内存模型? - 教程
  • Spring AI Alibaba 项目源码学习(四)-Graph中的存储分析
  • 20251113 正睿
  • 好消息,.NET 10 正式发布,更智能、更安全、更高性能的统一开发平台!
  • 从Dalvik字节码角度优化安卓编码
  • 基于Java+SSM+Flask家庭理财系统(源码+LW+调试文档+讲解等)/家庭理财/理财系统/家庭财务/家庭财务规划/家庭账目/家庭财务软件/家庭记账/理财器具/财务多元化/资产管理。
  • leetcode6. Z 字形变换
  • 深入解析:洞穴人的仰望:洞穴人隐喻与进步主义的歧途
  • 《JIRA:项目管理与敏捷开发实践》
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 主动交互和情境感知,AI 硬件是脱离手机屏幕掌控的蓝海机会丨硬件和端侧模型专场@RTE2025 回顾
  • WSL移植小记
  • 2025年西北数字人厂商最新TOP5评测:引领陕西甘肃智区域能交互新生态
  • centos 环境下部署mongodb并设定密码
  • 20232317 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • 谷歌起诉网络犯罪团伙Smishing Triad,揭露大规模钓鱼攻击
  • PLC与单片机区
  • 2025.11.13总结
  • .NET+AI | MEAI | .NET 平台的 AI 底座 (1)
  • NOIP2025模拟7
  • 20232304 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • AT_arc104_e Random LIS
  • kettle从入门到精通 第五十四课 ETL之kettle接收http请求
  • P13714 淘汰(Hard ver.)
  • Windows 10 本地部署工作流自动化工具 n8n
  • Gary Yen教授在BICTA2025做主旨汇报并访问本课题组
  • EUC 2024 题解(瞎写的