工作流节点¶
工作流由节点组成,每个节点是一个算子(WorkItem)——一个封装好的加工单元。本页说明节点如何与引擎衔接,并列出系统提供的节点类别与一个完整示例。
每个节点向引擎声明三件事:一个算子 ID、输入(需要哪些字段)、输出(产生哪些字段)。引擎按 ID 找到对应算子、按声明取值与回收,不关心算子内部如何实现——无论内部是解析、向量化还是执行 SQL,对引擎而言都是同一种带契约的执行单元。
正因如此,节点之间靠输出字段与输入字段的对应衔接:上游输出的字段与下游声明的输入一致时,数据才接得上;二者不一致,下游节点在运行时失败(见运行与调试)。
节点类别¶
系统节点按用途分为以下类别。这是当前的划分,完整清单以实时接口为准。
类别 |
用途 |
|---|---|
数据 IO |
读取数据源、写出文件、写入 Catalog |
智能处理 |
解析、分块、向量化等模型相关加工 |
检索与知识索引 |
构建知识库索引 |
代码处理 |
执行 SQL:查询、聚合、Join、窗口、CTE(见 SQL 编辑器) |
治理 |
登记数据血缘 |
流程控制 |
子工作流,仅引用同一工作流定义内声明的子网 |
流程结构 |
并行、条件分支、重复执行(并行与条件分支内置汇合) |
示例:文档知识库准备¶
“文档知识库准备”模板将一批源文件加工为知识库,由七个节点串联。各节点的输入取自变量(vars)、状态(state)或上一节点的输出(data),输出以 save 写入状态,供后续节点引用:
节点 |
算子 ID |
主要输入 |
输出 |
|---|---|---|---|
read_source |
|
源引用(vars) |
源文件 ID |
parse_documents |
|
源(data) |
解析后的文档 |
split_chunks |
|
解析后的文档(state) |
分块后的文档 |
build_index |
|
分块、目标表、嵌入模型 |
索引结果 |
write_parsed_docset |
|
分块 |
解析文件 ID |
save_output |
|
目标引用、分块 |
输出文件 ID |
register_lineage |
|
源文件 ID、解析文件 ID、向量表 |
资产 ID |
这条链的形状——读取、解析、分块、建索引、写出、落库、登记血缘——是文档类知识库的标准加工路径。
节点名称以实时接口为准¶
同一类加工可能存在多个算子名称(例如解析存在 moi:parse 与 moi:document.parse 并存)。选择节点时,以工作区实时接口 GET /workspaces/:id/workitems 返回的算子 ID 与输入输出约定为准,不要依据静态清单或示例中的名称。