LangGraph 初学者指南路由器工具和分支第二部分

LangGraph 初学者指南路由器工具和分支第二部分

Barry Lv6

LangGraph 中的工具与路由器解释

在上一篇文章中,我们介绍了如何使用 LangGraph 创建一个简单的图,包括节点、状态和边等各种组件。*在本文中,我们将探讨如何使用自定义工具以及如何在 LangGraph 中使用 路由器 创建 分支。*

第一部分 的链接——关于节点、边和状态。

与本文相关的所有示例代码都可以在这个 笔记本 中找到。

LangGraph 文档的链接 document

图形分支与工具调用

首先,我们创建了两个 自定义工具——乘法和加法——并将它们分组在一个名为 tools 的列表中。接下来,LLM(GPT-4o)与这些工具绑定。这种绑定允许模型在操作过程中使用这些工具,从而根据用户输入执行指定的算术操作。这意味着如果用户提出与加法或乘法相关的问题,模型(节点)将调用这些工具来回答问题。

MessageGraph 通过使用一个单一的、仅追加的消息列表作为其整个状态来管理状态,其中每个节点处理此列表并可以返回附加消息。这种设计特别适合对话应用程序,便于跟踪对话历史和交互。相比之下,StateGraph 允许更复杂的状态结构,其中状态可以是任何 Python 类型(如 TypedDict 或 Pydantic 模型),并且可以以多种方式更新。StateGraph 中的每个节点接收当前状态并返回更新后的状态,从而使得数据操作和工作流更加复杂,超越了仅仅是消息处理。因此,MessageGraph 专注于以消息为中心的工作流,而 StateGraph 更加通用,适用于更广泛的应用。

工作流

此示例中的第一个节点是一个与可用工具(加法和乘法)绑定的简单 LLM。该节点作为图的入口点。当用户向图发送问题时,模型节点首先确定是否应该调用工具来回答问题。根据模型的输出(状态),路由器将决定是将消息发送到动作节点还是返回最终输出。动作节点负责运行模型节点调用的工具。例如,如果用户提出与乘法相关的问题,模型将调用乘法工具,动作节点将执行乘法工具并将输出发送回用户。如果用户的问题与工具无关,LLM 将直接生成最终响应并完成图的执行。

这就是路由器检查图状态的最后一个元素以确定下一步采取哪个分支的原因。通过编译构建器图对象,我们使其可运行,并可以可视化整个图。

由于我们使用 MessageGraph 来管理状态,我们可以通过简单地提供人类消息来轻松调用图。

在这里,我们提出了一个与乘法相关的简单问题。模型节点调用了乘法工具,动作节点执行该工具以生成最终输出。

对于这个问题,模型节点没有调用任何工具,因为问题与可用工具无关。因此,它遵循了分支 2。

在本文中,我们探讨了如何通过结合自定义工具和使用路由器创建分支来增强 LangGraph。通过理解 MessageGraph 和 StateGraph 之间的差异,以及它们如何管理状态和工作流,我们可以更好地利用 LangGraph 进行简单和复杂的应用。通过这些见解,我们现在可以有效地在自己的项目中实现和可视化分支逻辑。

  • 标题: LangGraph 初学者指南路由器工具和分支第二部分
  • 作者: Barry
  • 创建于 : 2024-08-01 11:23:47
  • 更新于 : 2024-08-31 06:59:45
  • 链接: https://wx.role.fun/2024/08/01/f24ea91902f045239bf537f23be242ff/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
此页目录
LangGraph 初学者指南路由器工具和分支第二部分