条件分支
If-Else 组件是一个条件路由器,用于通过比较两个字符串来决定消息的流向。
它会根据指定操作符,对两段文本输入进行比较,并根据判断结果把消息路由到 true_result 或 false_result。
组件会根据操作符和匹配文本(match_text)在输入文本(input_text)中查找单个字符串,也支持通过正则表达式匹配多个词。
可用操作符包括:
- equals:完全相等
- not equals:不相等
- contains:检查
input_text中是否包含match_text - starts with:检查
input_text是否以match_text开头 - ends with:检查
input_text是否以match_text结尾 - regex:按区分大小写的正则模式匹配
默认情况下,除 regex 以外的所有操作符都不区分大小写。 regex 始终区分大小写;如果你希望其他操作符也区分大小写,可以在If-Else 参数中开启相关设置。
在流程中使用 If-Else
下面的例子中,If-Else 组件会使用正则匹配检查收到的聊天消息,再根据判断结果输出不同响应。

-
向流程中添加一个 If-Else 组件,并按以下方式配置:
-
Text Input:把 Text Input 端口连接到 Chat Input 组件或其他
Message输入。如果你的输入不是
Message格式,可以先用其他组件转换,例如 Type Convert 组件 或 Parser 组件。 如果你的输入本身不适合转成Message格式,也可以考虑使用其他条件路由组件,例如 Data Operations 组件。 -
Match Text:输入
.*(urgent|warning|caution).*,让组件在输入文本中查找这些值。由于 regex 匹配区分大小写,如果你要同时匹配warning的所有写法,就需要写成warning|Warning|WARNING。 -
Operator:选择 regex。
-
Case True:在组件头部菜单中点击 Controls,启用 Case True 参数,点击 Close,然后输入
New Message Detected。当条件为 true 时,这条 Case True 消息会从 True 输出端口发出。
本例中不设置 Case False,因此当条件为 false 时组件不会发出额外消息。
-
-
根据你希望 True 分支执行的逻辑,继续为流程添加组件:
-
添加 Language Model、Prompt Template 和 Chat Output 组件。
-
在 Language Model 组件中填入 OpenAI API Key,或改用其他提供商和模型。
-
将 If-Else 组件的 True 输出端口连接到 Language Model 的 Input 端口。
-
在 Prompt Template 中填写当判断结果为 true 时给模型的指令,例如:
Send a message that a new warning, caution, or urgent message was received。 -
将 Prompt Template 连接到 Language Model 的 System Message 端口。
-
将 Language Model 的输出连接到 Chat Output。
-
-
对 False 分支重复同样的过程,再配置一组 Language Model、Prompt Template 和 Chat Output。
把 If-Else 的 False 输出端口连接到第二个 Language Model 的 Input 端口。 然后在第二个 Prompt Template 中填写 false 场景下的指令,例如:
Send a message that a new low-priority message was received。 -
打开 Playground 测试流 程,分别发送带有和不带有正则匹配内容的消息。 最终聊天输出应根据正则判断结果遵循不同 Prompt 指令。
_10User: A new user was created._10_10AI: A new low-priority message was received._10_10User: Sign-in warning: new user locked out._10_10AI: A new warning, caution, or urgent message was received. Please review it at your earliest convenience.
If-Else 参数
有些参数在可视化编辑器中默认处于隐藏状态。 你可以通过组件标题栏菜单中的 控件 来修改全部参数。
| Name | Type | Description |
|---|---|---|
| input_text | String | 输入参数。要参与判断的主文本。 |
| match_text | String | 输入参数。用于比对的文本。 |
| operator | Dropdown | 输入参数。文本比较时使用的操作符,可选 equals、not equals、contains、starts with、ends with 和 regex。默认值为 equals。 |
| case_sensitive | Boolean | 输入参数。若为 true,则比较区分大小写。默认值为 false。该设置对 regex 比较无效。 |
| max_iterations | Integer | 输入参数。条件路由器允许的最大迭代次数。默认值为 10。 |
| default_route | Dropdown | 输入参数。当达到最大迭代次数时采用的默认路由,可选 true_result 或 false_result。默认值为 false_result。 |
| true_result | Message | 输出参数。条件为 true 时输出的结果。 |
| false_result | Message | 输出参数。条件为 false 时输出的结果。 |