If/Else
Нода If/Else выполняет условное ветвление: оценивает Python-выражение и направляет поток по ветке «Если» (true) или «Иначе» (false).
Назначение
- Ветвление логики на основе данных
- Фильтрация по условию
- Проверка результатов предыдущих нод
- Маршрутизация запросов по разным путям обработки
Настройки
Условие
Python-выражение, которое возвращает True или False. Пишется в текстовом поле с моноширинным шрифтом.
Примеры:
input.score > 70
lastOutput == "positive"
len(lastOutput) > 100
"error" not in lastOutput
Переменные в условиях
В условии доступны следующие переменные:
| Переменная | Описание |
|---|---|
input | Входные данные процесса (объект) |
input.field | Конкретное поле входных данных |
lastOutput | Результат предыдущей ноды |
node_X | Результат ноды с ID (замените дефисы на подчеркивания) |
Кнопка Переменные под полем условия открывает интерактивный выбор: входные переменные, выходы других нод и специальные переменные.
Примеры условий
На панели настроек доступна карточка Примеры с готовыми шаблонами условий:
- Сравнение чисел:
input.score > 70 - Проверка строки:
lastOutput == "approved" - Проверка вхождения:
"error" in lastOutput - Проверка длины:
len(lastOutput) > 0 - Сложные условия:
input.age >= 18 and input.country == "RU"
Клик по примеру подставляет его в поле условия.
Входные данные
Нода получает данные от предыдущей ноды. Эти данные доступны через переменные в выражении условия.
Выходные данные
Нода не трансформирует данные -- она передает входные данные без изменений по выбранной ветке.
Подключения
- Вход: один вход (слева)
- Выход «Если»: оранжевая точка (верхняя) -- условие истинно
- Выход «Иначе»: темная точка (нижняя) -- условие ложно
Примеры использования
Проверка качества ответа
Агент оценивает текст и выставляет оценку. If/Else проверяет оценку:
Условие: input.score >= 7
Если → отправить клиенту
Иначе → отправить на доработку
Маршрутизация по категории
Условие: input.category == "urgent"
Если → обработка приоритетная
Иначе → обработка стандартная
Проверка наличия данных
Условие: lastOutput and len(lastOutput) > 0
Если → продолжить обработку
Иначе → вернуть сообщение "данные не найдены"
Для реализации множественного ветвления (if/elif/elif/else) соедините несколько нод If/Else последовательно: выход «Иначе» первой ноды ведет ко второй ноде If/Else и так далее. Подробнее о маршрутизации: Визуальный редактор.
Условия пишутся на Python. Используйте == для сравнения (не =), and/or/not для логических операций, in для проверки вхождения.