可视化工作流/节点与模块(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 工作流中最重要的结构之一,用于:

  • 封装逻辑
  • 复用能力
  • 构建行业模板
  • 简化复杂画布
  • 提升整体可维护性

掌握模块能力,你就能开始构建更大型、更专业、更可复用的自动化工程。