跳到主要内容

If-Else (条件判断)

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 组件通过正则表达式匹配检查传入的聊天消息,然后根据匹配评估为真还是假输出不同的响应。

一个连接到两个 OpenAI 组件的条件路�由器

  1. 向您的工作流添加一个 If-Else 组件,然后按如下方式配置:

    • 文本输入 (Text Input):将 文本输入 (Text Input) 端口连接到 聊天输入 (Chat Input) 组件或其他 Message 输入。

      如果您的输入不是 Message 格式,您可以使用另一个组件对其进行转换,例如 类型转换 (Type Convert) 组件解析器 (Parser) 组件。 如果您的输入不适合 Message 格式,请考虑使用另一个组件进行条件路由,例如 数据操作 (Data Operations) 组件

    • 匹配文本 (Match Text):输入 .*(urgent|warning|caution).*,以便组件在传入输入中查找这些值。正则表达式匹配区分大小写,因此如果您需要查找 warning 的所有排列组合,请输入 warning|Warning|WARNING

    • 运算符 (Operator):选择 regex

    • 真值情况 (Case True):在 组件的标题菜单 中,单击 控件 (Controls),启用 Case True 参数,单击 关闭 (Close),然后在字段中输入 检测到新消息

      当匹配条件评估为真时,Case True 消息将从 True 输出端口发送。

      没有为 Case False 设置消息,因此当条件评估为假时,组件不会发出消息。

  2. 根据您希望在结果为 True (真) 时发生的情况,向您的工作流添加组件以执行该逻辑:

    1. 向您的工作流添加 语言模型 (Language Model)提示词模板 (Prompt Template)聊天输出 (Chat Output) 组件。

    2. 语言模型 组件中,输入您的 OpenAI API 密钥或选择不同的提供商和模型。

    3. If-Else 组件的 True 输出端口连接到 语言模型 组件的 输入 (Input) 端口。

    4. 提示词模板 组件中,为评估为真时的模型输入指令,例如 发送一条消息,说明收到了新的警告、注意或紧急消息

    5. 提示词模板 组件连接到 语言模型 组件的 系统消息 (System Message) 端口。

    6. 语言模型 组件的输出连接到 聊天输出 组件。

  3. False (假) 结果重复相同的过程,使用另一组 语言模型提示词模板聊天输出 组件。

    If-Else 组件的 False 输出端口连接到第二个 语言模型 组件的 输入 (Input) 端口。 在第二个 提示词模板 中,为评估为假时的模型输入指令,例如 发送一条消息,说明收到了新的低优先级消息

  4. 要测试工作流,请打开 操练场 (Playground),然后向工作流发送一些包含和不包含正则表达式字符串的消息。 聊天输出应根据正则表达式评估反映提示词中的说明。


    _10
    用户: 创建了一个新用户。
    _10
    _10
    AI: 收到了一条新的低优先级消息。
    _10
    _10
    用户: 登录警告:新用户被锁定。
    _10
    _10
    AI: 收到了一条新的警告、注意或紧急消息。请尽早查看。

If-Else 参数

Some parameters are hidden by default in the visual editor. You can modify all parameters through the Controls in the component's header menu.

名称类型描述
input_text (输入文本)String输入参数。操作的主要文本输入。
match_text (匹配文本)String输入参数。要进行比较的文本。
operator (运算符)Dropdown输入参数。用于比较文本的运算符。选项包括 equals (等于)not equals (不等于)contains (包含)starts with (以...开始)ends with (以...结束)regex (正则表达式)。默认值为 equals
case_sensitive (区分大小写)Boolean输入参数。当为 true 时,比较区分大小写。默认值为 false。此设置不适用于正则表达式比较。
max_iterations (最大迭代次数)Integer输入参数。条件路由器允许的最大迭代次数。默认值为 10。
default_route (默认路由)Dropdown输入参数。达到最大迭代次数时采取的路由。选项包括 true_resultfalse_result。默认值为 false_result
true_result (真值结果)Message输出参数。条件为真时产生的输出。
false_result (假值结果)Message输出参数。条件为假时产生的输出。
Search