本文档详细介绍FlowGram Runtime中的节点系统,包括节点的基本概念、现有节点类型及其用法,以及如何创建自定义节点。
现有节点:
后续会支持代码节点、意图识别节点、批处理节点、终止循环节点、继续循环节点、HTTP节点
节点是FlowGram工作流的基本执行单元,每个节点代表一个特定的操作或功能。FlowGram工作流本质上是由多个节点通过边连接形成的有向图,描述了任务的执行流程。节点系统的核心职责包括:
所有节点执行器都必须实现INodeExecutor接口,该接口定义了节点执行器的基本结构:
其中:
type:节点类型标识符,如'start'、'end'、'llm'等execute:节点执行方法,接收执行上下文,返回执行结果节点的执行流程如下:
准备阶段:
执行阶段:
完成阶段:
工作流引擎会根据节点间的连接关系,按顺序调度节点的执行。对于特殊节点(如条件节点和循环节点),引擎会根据节点的执行结果决定下一步的执行路径。
FlowGram Runtime目前实现了五种类型的节点:Start、End、LLM、Condition和Loop。下面将详细介绍每种节点的功能、配置和使用示例。
StartStart节点是工作流的起始节点,用于接收工作流的输入数据并开始工作流的执行。每个工作流必须有且只有一个Start节点。
| 选项 | 类型 | 必填 | 描述 |
|---|---|---|---|
| outputs | JSONSchema | 是 | 定义工作流的输入数据结构 |
在这个例子中,Start节点定义了工作流需要一个名为prompt的字符串类型输入。
EndEnd节点是工作流的结束节点,用于收集工作流的输出数据并结束工作流的执行。每个工作流必须有至少一个End节点。
| 选项 | 类型 | 必填 | 描述 |
|---|---|---|---|
| inputs | JSONSchema | 是 | 定义工作流的输出数据结构 |
| inputsValues | Record<string, ValueSchema> | 是 | 定义工作流的输出数据值,可以是引用或常量 |
在这个例子中,End节点定义了工作流的输出包含一个名为result的字符串,其值引用自ID为llm_0的节点的result输出。
LLMLLM节点用于调用大型语言模型执行自然语言处理任务,是FlowGram工作流中最常用的节点类型之一。
| 选项 | 类型 | 必填 | 描述 |
|---|---|---|---|
| modelName | string | 是 |