Перейти к основному содержимому

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 для проверки вхождения.