长期记忆存储在数据库里

from langchain.agents import create_agent,AgentState

from langgraph.checkpoint.memory import InMemorySaver

from langgraph.checkpoint.mysql.pymysql import PyMySQLSaver

from langgraph.store.memory import InMemoryStore

from langgraph.prebuilt import ToolRuntime

from langgraph.store.mysql import PyMySQLStore

from init_llm import deepseek_llm

from langchain_core.tools import tool

DB_URI="mysql+pymsql://root:xx@43.15.1.88:3306/langchain_db?charset=utf8mb4"

with (PyMySQLSaver.from_conn_string(DB_URI) as checkpointer,

PyMySQLStore.from_conn_string(DB_URI) as store):

checkpointer.setup()

store.setup()

store.put(

("users",),

"user_123",

{"name":"张三","age":18,"city":'北京',"hobby":"旅游"}

)

store.put(

("users",),

"user_456",

{"name": "李四", "age": 30, "city": '南京', "hobby": "足球"}

)

@tool

def get_user_info(runtime:ToolRuntime) -> str:

"""从长期获取用户信息"""

print('111111111111111111111111111111111')

store=runtime.store

user_data=store.get(("users",),"user_123")

if user_data:

print("user_data:",user_data)

value=user_data.value

return f"用户姓名:{value['name']},用户年龄:{value['age']},用户城市:{value['city']},用户爱好:{value['hobby']}"

else:

return f"用户信息不存在"

agent=create_agent(

model=deepseek_llm,

tools=[get_user_info],

store=store #长期记忆存储

)

config1={"configurable": {"thread_id":"session01"}}

config2={"configurable": {"thread_id":"session02"}}

resp=agent.invoke({"messages":[{"role":"user","content":"?""}],"user_id":'user01',"hobby":['篮球','羽毛球'],"other_info":{'age':28}},config=config1)

print(resp['messages'][-1])

#resp=agent.invoke({"messages":[{"role":"user","content":"我叫张三,你是谁?""}]},config=config1)

resp=agent.invoke({"messages":[{"role":"user","content":"获取我的信息?"}]},config=config1)

print(resp['messages'][-1])

resp=agent.invoke({"messages":[{"role":"user","content":"获取我的信息?"}]},config=config2)

print(resp['messages'][-1])

相关推荐
xingpanvip2 小时前
星盘接口开发文档:星相日历接口指南
android·开发语言·前端·css·php·lua
儿歌八万首5 小时前
Jetpack Compose 实战:实现一个动态平滑折线图
android·折线图·compose
李艺为9 小时前
Fake Device Test作假屏幕分辨率分析
android·java
zh_xuan9 小时前
github远程library仓库升级
android·github
峥嵘life9 小时前
Android蓝牙停用绝对音量原理
android
czlczl2002092511 小时前
IN和BETWEEN在索引效能的区别
android·adb
Volunteer Technology11 小时前
ES高级搜索功能
android·大数据·elasticsearch
北京自在科技11 小时前
Find Hub App 小更新
android·ios·安卓·findmy·airtag
lbb 小魔仙11 小时前
2026远程办公软件夏季深度横测:ToDesk、向日葵、网易UU远程全面对比,远控白皮书
android·服务器·网络协议·tcp/ip·postgresql