条件分支 (Switch/Conditional)
条件分支是一种控制流任务,它允许流程根据特定条件动态选择执行路径。这类似于编程语言中的 switch
语句或 if-elif-else
结构,支持多种分支判断逻辑。本文将介绍三种主要的条件分支类型:基础条件分支、高级条件分支(通过自定义代码实现)和 AI 条件分支。
1. 基础条件分支
基础条件分支节点用于根据预设条件对流程路径进行动态判断和路由。
功能说明
节点功能概述
该机制包含以下三种核心执行路径逻辑:
IF 条件判断
- 用户选择一个变量,并设置对应的判断条件及期望值。
- 若条件判断结果为 True,则执行 IF 路径。
- 否则,继续判断下一个条件路径(ELIF 或 Default)。
ELIF 条件判断(可选)
- 可配置一个或多个 ELIF 分支条件。
- 系统按顺序评估 ELIF 条件。若某条 ELIF 条件判断结果为 True,则执行对应的 ELIF 路径,并跳过其余 ELIF 及 Default 路径。
- 若当前 ELIF 条件为 False,则继续判断下一个 ELIF 或进入 Default 路径。
Default 路径(通常为必需)
- 当所有 IF 和 ELIF 条件均不满足时,系统将自动执行此路径。
通过上述逻辑,流程可以根据运行时数据智能选择合适的分支,实现灵活的业务控制流。
支持的条件类型
系统支持以下多种常用条件判断类型,适用于数值、字符串、布尔值等多种数据格式:
条件类型 | 描述说明 |
---|---|
等于 | 判断变量是否等于指定值 |
不等于 | 判断变量是否不等于指定值 |
大于 | 判断变量是否大于指定值 |
小于 | 判断变量是否小于指定值 |
大于等于 | 判断变量是否大于或等于指定值 |
小于等于 | 判断变量是否小于或等于指定值 |
存在 | 判断变量是否存在 |
不为空 | 判断变量值是否非空 |
为空 | 判断变量值是否为空 |
条件组合 (AND/OR)
当单个分支的触发条件依赖于多个子条件的满足情况时,可以设置条件组合逻辑。在这些子条件之间可以使用 AND
(所有子条件必须为真)或 OR
(任一子条件为真即可)进行连接。
场景示例:文本总结工作流
假设有一个文本总结工作流,需要根据用户选择的 summarystyle
变量来决定总结的侧重点:
工作流变量:
- summarystyle: 用户选择的总结风格(例如:"技术", "财经", "通用")
条件分支逻辑:
IF summarystyle 包含 "技术":
- 执行路径:通过知识检索节点查询"技术"相关知识,然后交由 LLM 节点进行总结和回复。 (此路径可能对应原图中上半部分所展示的逻辑)
ELIF summarystyle 包含 "财经":
- 执行路径:通过知识检索节点查询"财经"相关知识,然后交由 LLM 节点进行总结和回复。
Default (ELSE):
- (当 summarystyle 既不包含 "技术" 也不包含 "财经", 或为 "通用" 以及其他未明确指定的值时触发)
- 执行路径:直接通过 LLM2 节点进行通用性总结和回复。 (此路径可能对应原图中下半部分所展示的逻辑)
2. 高级条件分支 (自定义代码)
在基础条件分支逻辑之上,本系统还支持高级条件分支场景,允许开发者通过自定义 JavaScript 代码灵活定义分支判断逻辑。该方式适用于复杂业务需求或需动态运算的条件判断,提供更高的自由度和扩展性。
核心机制
用户可通过编写一段 JavaScript 脚本,该脚本需返回一个特定分支标识(字符串)。脚本可以结合流程上下文中的变量(例如,通过 $.switchCaseExpression
访问传入节点用于判断的变量值)进行复杂的条件匹配与分支选择。系统将执行该脚本,并根据其返回值决定下一步所要执行的分支路径。此机制特别适合处理多条件组合、复杂字符串匹配、正则表达式判断、枚举映射等逻辑。
示例代码
(function () {
// $.switchCaseExpression 通常代表传入条件节点用于判断的变量值
switch ($.switchCaseExpression) {
case "张三":
return "switch_case1"; // 返回预定义的分支标识 case1
case "李四":
return "custom_default_case"; // 返回预定义的分支标识 default
default:
return "error_or_unmatched_case"; // 返回错误或未匹配分支的标识
}
}())
注意:脚本中返回的字符串(如 "switch_case1", "custom_default_case")必须与流程编辑器中为该条件节点配置的下游分支名称或 ID 相对应,以确保流程正确路由。
3. AI 条件分支
AI 条件分支节点利用人工智能(AI)能力,基于对用户输入的智能分类判断来决定流程走向。
概述
通过引入 AI 驱动的条件分支判断机制,系统能够在面对多样化用户输入时,实现自动化、智能化的流程引导。AI 节点会识别并判断用户的输入内容,从而决定后续流程应执行的具体分支路径。这为后续处理提供了结构化、准确的分类信息,能够显著提升用户体验与系统响应效率。
工作原理
AI 条件分支通过预设的分类描述(或称分支提示词)对用户输入内容进行分析判断。具体而言,系统将用户输入(例如一个问题或一段文本)与为每个潜在分支预定义的描述性提示词结合,然后利用大语言模型(LLM)进行语义理解和推理。LLM 会判断用户输入与哪个分支的描述最为贴合,并输出相应的分类结果(通常是该分支的名称或 ID)。这个结果将作为路由决策的依据,引导流程进入最合适的分支,从而提升整体流程的准确性与效率。
应用场景示例
假设我们为 AI 条件分支定义了以下三类问题分类标签及其对应的描述/提示词:
与售后相关的问题
- 分支描述/提示词示例:"咨询商品保修政策、退换货流程、订单状态查询、发票开具等相关的用户提问。"
- 用户输入示例:"保修期限是多久?"
与产品操作使用相关的问题
- 分支描述/提示词示例:"咨询产品各项功能如何使用、具体设置步骤教学、常见故障排除方法、设备兼容性问题等相关的用户提问。"
- 用户输入示例:"iPhone 14 如何设置通讯录联系人?"
其他问题
- 分支描述/提示词示例:"包含问候、闲聊或无法明确归入其他已定义分类的通用性用户输入。"
- 用户输入示例:"今天天气怎么样?"
根据上述分类体系和分支描述,系统中的"AI 问题分类器"(即 AI 条件分支节点)将自动识别用户输入的内容,并将其归类至最匹配的类别中。例如:
- 用户输入:"iPhone 14 如何设置通讯录联系人?" → AI 分类结果:"与产品操作使用相关的问题" (触发对应分支)
- 用户输入:"保修期限是多久?" → AI 分类结果:"与售后相关的问题" (触发对应分支)
- 用户输入:"今天天气怎么样?" → AI 分类结果:"其他问题" (触发对应分支)