当前位置: 首页 > 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/

http://www.dtcms.com/a/181968.html

相关文章:

  • 《算法导论(第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开篇
  • vscode 中 tasks.json schema
  • 前端面试每日三题 - Day 30
  • AtCoder Beginner Contest 405(CD)
  • Qt中在子线程中刷新UI的方法
  • Day28 -js开发01 -JS三个实例:文件上传 登录验证 购物商城 ---逻辑漏洞复现 及 判断js的payload思路
  • MySQL:视图
  • 前端弹性布局:用Flexbox构建现代网页的魔法指南
  • Linux 离线安装 Docker 和 Docker Compose 最新版 的完整指南
  • 微机控制电子式持久蠕变慢应变应力腐蚀试验机
  • MATLAB安装常见问题及解决方案详解(含代码示例)