可视化工作流/节点与模块(Modules)
5.4 节点与模块(Modules)
在 Pop 的工作流体系中,模块(Module) 是比单个节点更高层级的逻辑单位。
它允许你 把一组节点封装成「子工作流」,对外暴露输入/输出,就像一个“自定义节点”。
这让你的工作流更容易管理、复用和扩展,特别适用于:
- 多步骤重复逻辑
- 复杂业务流程的拆分
- 团队共享通用逻辑
- 构建行业模板(自动报告、知识库流水线、客服 SOP 等)
本章节将讲解模块的核心概念、使用方式、最佳实践与典型应用场景。
🧩 一、什么是模块(Module)?
模块是一个由多个节点组合而成的“可复用组件”。
你可以理解为:
Module = 子工作流(有自己的节点、连线、变量、输入、输出)
它在画布上表现为一个节点:
┌──────────────────────┐
│ 模块:文本清洗模块 │
│ Inputs: text │
│ Outputs: clean_text │
└──────────────────────┘
但双击它,就会进入内部,看到完整的“子流程”。
模块具有以下特性:
- 可折叠 / 展开(让画布更整洁)
- 可复用(像普通节点一样拖进任意工作流)
- 可导出 / 导入
- 可对外暴露输入 / 输出
- 支持在模块内再包含模块(嵌套模块)
📦 二、模块的典型应用场景
✔ 1. 通用逻辑的复用
例如:
- 文本清洗(去换行、去 HTML、裁剪长度)
- AI 总结模板
- PDF 解析 → 清洗 → 输出结构化 JSON
这些在不同工作流中都会重复使用,把它们封成模块后能极大提高效率。
✔ 2. 复杂流程的拆分
例如一个自动化报告生成流程:
原始数据 → AI 总结 → 图表生成 → PPT 生成 → 上传结果
你可以拆成三个模块:
- 数据预处理模块
- AI 撰写模块
- 图表 & PPT 生成模块
主工作流保持简洁易读。
✔ 3. 为团队构建「行业能力库」
比如:
- 财务报表自动生成模块
- 运营日报模块
- SEO 文案生成模块
- 视频脚本生成模块
- 知识库批量索引模块
模块 = 复用能力。
🏗 三、如何创建模块(Module)
在工作流中选择多个节点,右键 → “封装为模块”。
系统将自动生成:
- 模块名称
- 模块 ID
- 输入端口(来自内部节点未连接的输入)
- 输出端口(来自内部节点未连接的输出)
你可以随后手动调整这些端口。
🎚 四、模块的输入与输出
模块对外暴露的输入/输出称为 Port。
示例:
Inputs:
- text: string
- max_tokens: number
Outputs:
- summary: string
在模块内部,这些 Port 就像普通节点的输入输出一样使用。
🔧 五、编辑模块内部
双击模块即可进入内部编辑器,你可以:
- 添加 / 删除节点
- 调整内部连线
- 添加子模块
- 配置内部变量
- 设计内部的运行逻辑
- 调试模块内部执行情况
模块内部有自己的运行日志,可独立调试。
🧱 六、模块与参数(Config)
模块可以像普通节点一样拥有自定义参数配置。
例如:
{
"temperature": 0.4,
"language": "zh"
}
这让模块更灵活:
- 「摘要模块」可以接受不同长度
- 「知识库检索模块」可选择不同 KB
- 「数据清洗模块」可选择保留字段
🔁 七、模块的导入与导出
模块可以作为独立 JSON 导出:
导出文件包含:
- 模块元信息(id、name、icon)
- 内部节点与连线
- 输入/输出端口
- 变量
- 内部模块引用
导入后:
可在任何 Pop 实例中继续使用,非常适合:
- 团队分享
- 小程序模板
- 行业解决方案落地
🧭 八、模块的最佳实践
✔ 1. 一个模块只做好一件事(Single Responsibility)
好模块应该:
- 输入清晰
- 输出明确
- 内部逻辑独立
- 不依赖外部变量(尽量)
✔ 2. 使用模块时注意命名规范
建议格式:
行业/功能-动词
例如:
- 文本/摘要生成
- 财务/报表分析
- 文档/知识库入库
- 营销/短视频脚本生成
- 数据/格式化
✔ 3. 拆分复杂逻辑成多个模块
不要在一个模块中做太多事情。
✔ 4. 模块与布局结合
发布应用时:
- 将模块输出绑定到图表 / 表格 / 卡片组件
- 使整个应用高度可配置
🧠 九、模块 vs 组合节点(Composite Node)
| 特性 | 模块 Module | 组合节点 Group |
|---|---|---|
| 是否改变工作流结构 | ✔ 是 | ✖ 否 |
| 可否作为自定义节点复用 | ✔ 可以 | ✖ 不可以 |
| 是否对外暴露输入/输出 | ✔ 有 | ✖ 没有 |
| 是否能嵌套 | ✔ 可以 | ✔ 可以 |
| 适用场景 | 明确定义可复用能力 | 画布整理、美观展示 |
小结:
Group 用于视觉管理,Module 用于功能封装。
📝 十、示例:构建一个「AI 摘要模块」
内部流程:
输入 text
↓
清洗文本(dictionary + transformer)
↓
构建 prompt(prompt 节点)
↓
AI 调用(llm)
↓
返回 summary
最终模块对外暴露:
Inputs:
- text
Outputs:
- summary
可用于:
- 自动写周报
- 文档摘要
- 多段内容批处理
✅ 总结
模块是 Pop 工作流中最重要的结构之一,用于:
- 封装逻辑
- 复用能力
- 构建行业模板
- 简化复杂画布
- 提升整体可维护性
掌握模块能力,你就能开始构建更大型、更专业、更可复用的自动化工程。