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

LangGraph 官方教程:聊天机器人之四

四、添加记忆

聊天机器人现在可以使用工具来回答用户问题,但它不记得之前交互的上下文。这限制了它进行连贯的多轮对话的能力。

LangGraph 通过持久化检查点解决了这个问题。如果你在编译图时提供一个 checkpointer,并在调用图时提供一个 thread_id,LangGraph 会在每一步之后自动保存状态。当你使用相同的 thread_id 再次调用图时,图会加载其保存的状态,允许聊天机器人从上次停止的地方继续。

我们稍后会看到检查点比简单的聊天记忆_强大得多_ - 它让你可以随时保存和恢复复杂状态,用于错误恢复、人机协作工作流、时间旅行交互等等。但首先,让我们添加检查点来启用多轮对话。

1. 创建一个 MemorySaver 检查点器

创建一个 MemorySaver 检查点器:

--- python ---

from langgraph.checkpoint.memory import InMemorySavermemory = InMemorySaver()

--- js ---

import { MemorySaver } from "@langchain/langgraph";const memory = new MemorySaver();

这是一个内存检查点器,对于教程来说很方便。但是,在生产应用程序中,你可能会将其更改为使用 SqliteSaverPostgresSaver 并连接数据库。

2. 编译图

使用提供的检查点器编译图,它将在图处理每个节点时检查点 State

--- python ---

graph = graph_builder.compile(checkpointer=memory)

--- js ---

const graph = new StateGraph(State).addNode("chatbot", chatbot).addNode("tools", new ToolNode(tools)).addConditionalEdges("chatbot", toolsCondition, ["tools", END]).addEdge("tools", "chatbot").addEdge(START, "chatbot").compile({ checkpointer: memory });

3. 与你的聊天机器人交互

现在你可以与你的机器人交互了!

  1. 选择一个线程作为此对话的键。

--- python ---

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

--- js ---

const config = { configurable: { thread_id: "1" } };
  1. 调用你的聊天机器人:

--- python ---

user_input = "Hi there! My name is Will."# config 是 stream() 或 invoke() 的**第二个位置参数**!
events = graph.stream({"messages": [{"role": "user", "content": user_input}]},config,stream_mode="values",
)
for event in events:event["messages"][-1].pretty_print()

================================ Human Message =================================

Hi there! My name is Will.

================================== Ai Message ==================================

Hello Will! It's nice to meet you. How can I assist you today? Is there anything specific you'd like to know or discuss?

config 在调用我们的图时作为**

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

相关文章:

  • 【多模态】qwen3-vl的强化微调
  • 网站开发岗位思维导图vps 网站攻击ip地址
  • python-docx 节操作
  • [nanoGPT] 文本生成 | 自回归采样 | `generate`方法
  • 【Linux专栏】shell脚本变量的取值|转换
  • [Dify 实战] 插件调试技巧(进阶篇):本地测试与部署全流程问题排查指南(Dify本地部署环境下)
  • 一、初识 LangChain:架构、应用与开发环境部署
  • 中山公司网站建设阿里云域名交易平台
  • 做flash音乐网站的开题报告做网站建设的合同范本
  • Trait与泛型高级用法
  • 解锁效率:一份关于大语言模型量化的综合技术指南
  • 网站后天添加文章不显示上海搜索优化推广哪家强
  • 前端基础之《React(3)—webpack简介-集成JSX语法支持》
  • 虚拟机之间配置免密登录(Centos)
  • 嵌入式测试的工作内容非常具体和专业化,它横跨了软件和硬件两个领域。
  • 保定网站建设团队网站备案密码 多少位
  • ZW3D二次开发_整图缩放
  • 滁州网站建设费用开发公司网签价格
  • 福州建网站公司最好的营销型网站建设公司
  • 新手入门:一篇看懂计算机基础核心知识
  • 每日算法刷题Day80:10.27:leetcode 回溯11道题,用时3h
  • 建设一个网站的规划广州seo公司如何
  • [强化学习] 第1篇:奖励信号是智能的灵魂
  • 从“看得见“到“看得懂“:监控安全管理的智能进化
  • YOLOv5 核心模块解析与可视化
  • 昆山外贸型网站制作建站科技公司
  • 快速建站框架网站如何做360优化
  • 网站公司做网站网络推广公司介绍
  • 百度网站验证方法室内设计效果图多少钱一张
  • 网站服务器查找wordpress cms主题制作