Условный оператор (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.
- Важно: Поиск через regex чувствителен к регистру. Чтобы найти все варианты слова «warning», используйте формат
- Operator: Выберите regex.
- Case True:
- Перейдите в меню Controls (иконка настроек в заголовке компонента).
- Включите параметр Case True, нажмите Close.
- В появившемся поле введите:
New Message Detected. - Это сообщение будет отправлено через порт True, если условие выполнено. Для Case False сообщение в данном примере не задается.
2. Создание логики для результата “True” (Истина)
Если сообщение содержит ключевые слова, выполните следующее:
- Добавьте компоненты: Language Model, Prompt Template и Chat Output.
- В Language Model укажите API-ключ и выберите модель.
- Соедините порт True компонента If-Else с портом Input языковой модели.
- В Prompt Template введите инструкцию: «Отправь сообщение о том, что получено новое важное уведомление (warning/caution/urgent)».
- Соедините Prompt Template с портом System Message модели, а выход модели — с Chat Output.
3. Создание логики для результата “False” (Ложь)
Для обычных сообщений повторите процесс с вторым набором компонентов:
- Соедините порт False компонента If-Else с входом второй языковой модели.
- В соответствующем Prompt Template укажите: «Отправь сообщение о получении нового низкоприоритетного уведомления».
4. Тестирование в Playground
Откройте Playground и отправьте тестовые сообщения:
- Запрос: A new user was created.
- Ответ AI: Получено новое низкоприоритетное уведомление.
- Запрос: Sign-in warning: new user locked out.
- Ответ AI: Получено новое важное уведомление. Пожалуйста, проверьте его при первой возможности.
Параметры компонента
Некоторые параметры по умолчанию скрыты в визуальном редакторе. Вы можете изменить все параметры через меню
Controls (Управление) в заголовке компонента.
| Имя (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). |