长期记忆存储在数据库里

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)

相关推荐
Kapaseker3 小时前
Kotlin Toolchain 0.11 发布:主要是把 Amper 干没了
android·kotlin
三少爷的鞋4 小时前
Android 现代架构不需要事件总线进阶篇
android
杉氧18 小时前
深入理解 Compose 重组机制:快照系统如何驱动 UI 精准刷新?
android·架构·android jetpack
召钱熏19 小时前
状态枚举正确≠渲染正确:一个语音按钮的状态机边界修复实录
android·前端
杉氧19 小时前
深度解析:Jetpack Compose 核心架构与底层原理 —— 十年安卓老兵的“破茧重生”
android·架构·android jetpack
通玄19 小时前
Jetpack Compose 入门系列(七):ViewModel 与界面状态管理
android
落魄Android在线炒饭20 小时前
Android Framework 开发技巧:android.jar 生成与系统快速编译验证
android
如此风景20 小时前
Kotlin Flow操作符学习
android·kotlin
plainGeekDev21 小时前
GreenDAO → Room
android·java·kotlin
weiggle1 天前
第八篇:ViewModel + Compose——生产级状态管理实践
android