Skip to main content

Создание кастомной ноды

Создание кастомных нод позволяет обойти ограничения, которые связаны со стандартной библиотекой нод Piper, или же даже просто улучшить функционал текущих нод.

Давайте создадим кастомную ноду Merge text to JSON, которая принимает несколько текстовых строк и объединяет их в один JSON массив.

1. Загрузка ноды из библиотеки нод

Для создания кастомной ноды начните с загрузки существующей ноды, которая наиболее близка к вашим требованиям. Перейдите в библиотеку нод, используя значок плюс (+) в верхнем левом углу рабочего пространства пайплайны и выберите ноду Input Text для модификации, поскольку в ней минимум кода и она работает со строками.

После добавления ноды откройте её настройки.

Панель настроек ноды

Панель настроек включает несколько вкладок:

  • Inputs - Текущие параметры ноды, их настройка, загрузка изображений
  • Design - Создание входных и выходных параметров, определение их свойств
  • Script - Редактирование кода JavaScript, логика ноды
  • Environment - Настройка переменных окружения
  • Catalog - Просмотр метаданных ноды и её публикация
  • YAML - Доступ к YAML ноды

2. Настройка ноды

Кастомизация начинается со вкладки Design, где определяется структура ноды.

Вкладка Design

Основные свойства

  • ID - Внутреннее имя, используемое в коде (строчные латинские буквы, без пробелов)
  • Title - Отображаемое имя, видимое пользователю

Для нашей ноды прежние значения необходимо заменить на:

  • ID: merge_text_to_json
  • Title: Merge text to JSON

Добавление входных параметров

Нашей ноде нужно 4 строковых входа. Чтобы добавить новый вход:

  1. Раскройте меню-гамбургер Inputs
  2. Введите имя нового входа: string1
  3. Нажмите Add

Добавление нового входного параметра

Настройте параметры входа:

  • Type: string (то есть текст)
  • Title: String 1 (название, отображаемое на ноде)

Настройка свойств входа

Повторите этот процесс для создания входов string2, string3 и string4.

Чтобы удалить прежний входной параметр input_text, снимите галочку с него в меню Inputs.

Удаление оригинального входа

Если визуально изменения не произошли, нужно временно открыть другую вкладку и потом вернуться в Design.

Расширенные настройки входных параметров

Доступ к детальным настройкам входных параметров открывается через меню-гамбургер.

Выпадающее меню настроек входных параметров

Доступные опции включают:

  • Order (число) - Задаёт порядок расположения входов в ноде
  • Description (текст) - Текст всплывающей подсказки для параметра
  • Required (boolean) - True делает параметр обязательным
  • Group (текст) - Группирует связанные настройки
  • Enum (текст) - Создает выпадающие списки с предопределенными значениями
  • Multiline (boolean) - Расширяет поля String для длинного текста
  • Min, Max (число) - Устанавливает ограничения для полей Integer
  • Step (число) - Преобразует поле Integer в ползунок с шагом, равным значению Step
  • Default - Устанавливает значения по умолчанию
  • Placeholder (текст) - Показывает подсказку в пустых полях String
  • Schema - Техническое поле для скриптов
  • Extensions (текст) - Добавляет специальную функциональность (например, draw-mask для задания маски на загруженном изображении)

Пример конфигурации расширений

Настройка выходных параметров

Создайте выходной параметр. Для этого удалите прежний выход output_text и добавьте новый json_output со следующими параметрами:

  • Type: JSON
  • Title: JSON

Итогое окно Design должно выглядеть примерно так:

Отредлактированная вкладка Design

Совет

Отслеживайте ваши изменения во вкладке Inputs, чтобы видеть, как модификации влияют на структуру ноды.

Про следующий шаг - написание логики скрипта ноды, в разделе Вкладка Node Script.