Skip to Content

Условный оператор (If-Else)

Описание

Компонент If-Else — это условный роутер, который направляет сообщения, сравнивая две строки. Он оценивает условие, сопоставляя два текстовых ввода с помощью выбранного оператора, и пересылает сообщение на выход true_result (истина) или false_result (ложь) в зависимости от результата оценки.

Как работают операторы

Оператор ищет совпадения в исходном тексте (input_text) на основе текста для сравнения (match_text). Система может искать как одиночные строки, так и сложные комбинации слов с помощью регулярных выражений.

Доступные операторы:

  • equals (равно): Сравнение на точное совпадение.
  • not equals (не равно): Проверка на отсутствие точного совпадения.
  • contains (содержит): Проверяет, входит ли match_text в состав input_text.
  • starts with (начинается с): Проверяет, начинается ли input_text с текста match_text.
  • ends with (заканчивается на): Проверяет, заканчивается ли input_text текстом match_text.
  • regex (регулярное выражение): Поиск совпадений по шаблону с учетом регистра.

Чувствительность к регистру

  • По умолчанию все операторы нечувствительны к регистру, кроме regex.
  • Оператор regex всегда учитывает регистр.
  • Для всех остальных операторов вы можете включить чувствительность к регистру вручную в параметрах компонента.

Условная маршрутизация сообщений через If-Else

В этом примере мы настроим проверку входящих сообщений на наличие ключевых слов «urgent», «warning» или «caution» и будем выдавать разные ответы в зависимости от результата.

1. Настройка компонента If-Else

Добавьте компонент If-Else в свой поток и настройте его параметры:

  • Text Input: Подключите входной порт к компоненту Chat Input или другому источнику сообщений.
    • Примечание: Если данные не в формате Message, используйте компоненты Type Convert или Parser для преобразования.
  • Match Text: Введите .*(urgent|warning|caution).* для поиска этих слов в тексте.
    • Важно: Поиск через regex чувствителен к регистру. Чтобы найти все варианты слова «warning», используйте формат warning|Warning|WARNING.
  • Operator: Выберите regex.
  • Case True:
    • Перейдите в меню Controls (иконка настроек в заголовке компонента).
    • Включите параметр Case True, нажмите Close.
    • В появившемся поле введите: New Message Detected.
    • Это сообщение будет отправлено через порт True, если условие выполнено. Для Case False сообщение в данном примере не задается.

2. Создание логики для результата “True” (Истина)

Если сообщение содержит ключевые слова, выполните следующее:

  1. Добавьте компоненты: Language Model, Prompt Template и Chat Output.
  2. В Language Model укажите API-ключ и выберите модель.
  3. Соедините порт True компонента If-Else с портом Input языковой модели.
  4. В Prompt Template введите инструкцию: «Отправь сообщение о том, что получено новое важное уведомление (warning/caution/urgent)».
  5. Соедините Prompt Template с портом System Message модели, а выход модели — с Chat Output.

3. Создание логики для результата “False” (Ложь)

Для обычных сообщений повторите процесс с вторым набором компонентов:

  1. Соедините порт False компонента If-Else с входом второй языковой модели.
  2. В соответствующем Prompt Template укажите: «Отправь сообщение о получении нового низкоприоритетного уведомления».

4. Тестирование в Playground

Откройте Playground и отправьте тестовые сообщения:

  • Запрос: A new user was created.
    • Ответ AI: Получено новое низкоприоритетное уведомление.
  • Запрос: Sign-in warning: new user locked out.
    • Ответ AI: Получено новое важное уведомление. Пожалуйста, проверьте его при первой возможности.

Параметры компонента

Некоторые параметры по умолчанию скрыты в визуальном редакторе. Вы можете изменить все параметры через меню component1Controls (Управление) в заголовке компонента.

Имя (Name)Тип (Type)Описание (Description)
input_textStringВходной параметр. Основной текст для выполнения операции.
match_textStringВходной параметр. Текст, с которым будет производиться сравнение.
operatorDropdownВходной параметр. Оператор для сравнения текстов. Варианты: equals (равно), not equals (не равно), contains (содержит), starts with (начинается с), ends with (заканчивается на) и regex (регулярное выражение). По умолчанию: equals.
case_sensitiveBooleanВходной параметр. Если true, сравнение учитывает регистр. По умолчанию: false. Эта настройка не применяется к сравнениям через regex.
max_iterationsIntegerВходной параметр. Максимальное количество итераций, разрешенное для условного роутера. По умолчанию: 10.
default_routeDropdownВходной параметр. Маршрут, который будет выбран при достижении лимита итераций. Варианты: true_result или false_result. По умолчанию: false_result.
true_resultMessageВыходной параметр. Результат, выдаваемый, когда условие истинно (true).
false_resultMessageВыходной параметр. Результат, выдаваемый, когда условие ложно (false).