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

LangGraph(三)——添加记忆

目录

  • 1. 创建MemorySaver检查指针
  • 2. 构建并编译Graph
  • 3. 与聊天机器人互动
  • 4. 问一个后续问题
  • 5. 检查State
  • 参考

1. 创建MemorySaver检查指针

  创建MemorySaver检查指针:

from langgraph.checkpoint.memory import MemorySavermemory = MemorySaver()

  这是位于内存中的检查指针,仅适用于QuickStart教程。在实际生产应用程序中,建议将其更改为SqliteSaver或PostgresSaver并连接数据库。

2. 构建并编译Graph

  Graph的构建如下:

from typing import Annotatedfrom langchain.chat_models import init_chat_model
from typing_extensions import TypedDictfrom langgraph.graph import StateGraph, START
from langgraph.graph.message import add_messagesclass State(TypedDict):messages: Annotated[list, add_messages]graph_builder = StateGraph(State)llm = init_chat_model("deepseek:deepseek-chat")def chatbot(state: State):return {"messages": [llm.invoke(state["messages"])]}# The first argument is the unique node name
# The second argument is the function or object that will be called whenever
# the node is used.
graph_builder.add_node("chatbot", chatbot)
graph_builder.add_edge(START, "chatbot")

  使用提供的检查指针编译Graph,它将在图遍历每个节点时检查State:

graph = graph_builder.compile(checkpointer=memory)

3. 与聊天机器人互动

  选择一个线程作为这个对话的标签:

config = { "configurable": { "thread_id": "1" } }

  与聊天机器人聊天:

user_input = "Hi there! My name is Will."events = graph.stream({ "messages": [ { "role": "user", "content": user_input } ] },config,stream_mode="values"
)for event in events:event["messages"][-1].pretty_print()

  运行结果为:
在这里插入图片描述

4. 问一个后续问题

  问一个后续问题:

user_input = "What is My Name?"events = graph.stream({ "messages": [ { "role": "user", "content": user_input } ] },config,stream_mode="values"
)for event in events:event["messages"][-1].pretty_print()

  运行结果为:
在这里插入图片描述
  注意,上面的代码没有使用外部列表来存储内存。下面尝试使用不同的配置:

events = graph.stream({ "messages": [ { "role": "user", "content": user_input } ] },{ "configurable": { "thread_id": "2" } },stream_mode="values"
)for event in events:event["messages"][-1].pretty_print()

  运行结果为:
在这里插入图片描述
  注意,上面的代码仅更改了配置中的thread_id。

5. 检查State

  到目前为止,我们已经跨两个不同的线程设置了几个检查点。但是什么会进入检查点呢?要在任何时候检查给定配置的图State,调用get_state(config):

snapshot = graph.get_state(config)
snapshot

  输出如下:
在这里插入图片描述
在这里插入图片描述

参考

https://langchain-ai.github.io/langgraph/tutorials/get-started/3-add-memory/

相关文章:

  • 《算法导论(第4版)》阅读笔记:p17-p27
  • 事务连接池
  • Linux笔记---System V共享内存
  • 海市蜃楼的形成原理
  • JVM之内存管理(二)
  • vue 组件函数式调用实战:以身份验证弹窗为例
  • 数字相机的快门结构
  • 互联网大厂Java求职面试:基于RAG的智能问答系统设计与实现-3
  • 4.6java异常处理
  • 每日算法刷题Day2 5.10:leetcode数组1道题3种解法,用时40min
  • Java零组件实现配置热更新
  • C++发起Https连接请求
  • PyQt5基础:QWidget类的全面解析与应用实践
  • 利用多AI协作实现AI编辑器高效开发:创新架构与实践基本构想
  • 【typenum】 1 说明文件(README.md)
  • 【金仓数据库征文】政府项目数据库迁移:从MySQL 5.7到KingbaseES的蜕变之路
  • 数据库故障排查指南大纲
  • Tailwind CSS v4 主题化实践入门(自定义 Theme + 主题模式切换)✨
  • 边缘计算从专家到小白
  • MySQL开篇
  • 云南多地突查公职人员违规饮酒:公安局门口开展酒精吹气测试
  • 重庆大学:对学术不端行为“零容忍”,发现一例、查处一例
  • 碧桂园:砸锅卖铁保交房、持续推进保主体,尽快让公司恢复正常经营
  • 中国海外发展:今年前4个月销售665.8亿元,花费305亿元拿地
  • 李在明正式登记参选下届韩国总统
  • 东方红资管官宣:41岁原国信资管董事长成飞出任新总经理