跳至主要内容

子图节点

Subgraph Node Screenshot

概述

子图节点允许您在当前图中执行另一个图。这对于跨多个图重用逻辑或将复杂图分解为更小、更易管理的部分非常有用。

子图节点的输入和输出由子图内的Graph Input NodesGraph Output Nodes定义。Subgraph Node会自动更新其输入和输出以匹配所选子图的配置。

子图节点还具有一个可选的错误输出端口。如果启用该功能,执行子图时发生的任何错误都将被捕获并从错误输出端口输出。如果未启用,错误将导致整个图执行失败。

输入项

标题数据类型描述默认值备注
(自定义名称)任意传入子图的输入值。根据子图中配置的输入动态变化。不适用始终接受任何数据类型。

示例1:在多处复用同一个图形

  1. 在您的项目中创建一个新图表,并添加一个Graph Input Node和一个Graph Output Node。将Graph Input Node连接到Text Node,然后将该节点连接到Graph Output Node。
  2. 将Text节点更新为显示文本{{input}} Hi, From Subgraph
  3. 在主图中添加一个子图节点。在编辑器设置中,将Graph设置为步骤1中创建的图。
  4. 将一个文本节点连接到子图节点的输入端口。
  5. 将文本节点的文本设置为Hello Subgraph!
  6. 运行图形。请注意,文本会通过子图传递回主图,并将子图中的文本附加到主图文本中。

Subgraph Node Example 1a Subgraph Node Example 1b

示例2:处理子图中的错误

  1. 使用与示例1相同的图表,在子图中添加一个向量存储节点。
  2. 将文本节点的所有输出连接到向量存储节点。
  3. 这将导致向量存储节点报错
  4. 在主图中添加一个子图节点。在编辑器设置中启用Use Error Output
  5. 文本节点连接到子图节点的两个输出端。
  6. 运行图形。请注意,错误会输出在Subgraph Node的Error端口上,而Output端口不会运行。

Subgraph Node Example 2a Subgraph Node Example 2b

错误处理

如果子图出错,那么子图节点也会出错。如果您想在图中处理错误,可以启用Use Error Output设置。这将使子图节点不会出错,而是将错误消息传递到Error输出端口。如果Error端口有值,则不会运行Result端口。您可以使用If Node来检查Error端口是否有值,并相应地处理错误。

常见问题

问:我可以使用子图节点在不同的项目中执行图形吗?

A: 不,Subgraph Node只能执行同一项目内的图表。

问:我可以使用Subgraph Node在循环中执行图形吗?

A: 是的,你可以使用Loop Controller Node来循环执行Subgraph Node。每次循环迭代都会以当前循环值作为输入来执行子图。

问:我可以使用子图节点有条件地执行图形吗?

A: 是的,你可以使用If Node来有条件地执行子图节点。如果条件为假,子图节点将不会被执行。

另请参阅