跳到主要内容

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_result 或 false_result。默认值为 false_result。
true_result (真值结果)Message输出参数。条件为真时产生的输出。
false_result (假值结果)Message输出参数。条件为假时产生的输出。
Search