Связывание элементов данных

Элемент данных — это отдельная единица информации. Узлы получают один или несколько элементов, обрабатывают их и создают новые элементы. Каждый созданный элемент содержит ссылки на исходные элементы, из которых он был получен.

Понимание этого механизма особенно важно, если вы:

  • Создаете собственные узлы с программной логикой и сложной обработкой входных и выходных данных.
  • Используете узел Code или редактор выражений для доступа к данным из предыдущих элементов.
  • Требуете сложного взаимодействия между входными и выходными элементами внутри узла.

 

Концепция связывания элементов

Каждый элемент, создаваемый узлом, содержит метаданные, указывающие на элемент(ы) ввода, использованные для его генерации. Это создает цепочку данных, по которой можно «откатываться» к предыдущим элементам.

Особенности:

  • Если узел разветвляет или объединяет данные, цепочка linking может быть сложной.
  • Понимание связывания элементов необходимо при создании узлов с программной логикой или при использовании узла Code в определенных сценариях.

Для детального изучения:

  • Для разработчиков узлов: как правильно обрабатывать linking при создании узлов.
  • В узле Code: как обращаться к связанным элементам в коде.
  • Ошибки связывания: разбор типичных ошибок при работе с элементами в интерфейсе.

 

Автоматическое связывание элементов в Нейро42

Если узел не управляет связью элементов напрямую, платформа автоматически пытается определить правильные связи:

  1. Один вход — один выход. Выходной элемент связывается с входным.
  2. Один вход — несколько выходов. Все выходные элементы связываются с одним входным.
  3. Несколько входов — несколько выходов
    • Если сохраняются все входные элементы или их часть, Нейро42 автоматически создает правильные ссылки.
    • Если количество входов и выходов совпадает, элементы связываются по порядку: output-1 с input-1, output-2 с input-2 и т.д.
    • Если количество элементов различается или создаются новые элементы, автоматическое связывание невозможно.
    • Если узел не обрабатывает linking и автоматическая связь невозможна, система выдает ошибку.

См. раздел Ошибки связывания элементов для детальной информации.

Представьте узел, который сортирует фильмы по алфавиту, и узел, который получает список известных актеров.

Благодаря linking, отсортированный фильм может ссылаться на актёра, полученного несколькими шагами ранее, даже если порядок элементов изменился.

Методы доступа к связным элементам различаются в зависимости от способа работы:

  • Через UI: drag-and-drop или таблицу input.
  • Через редактор выражений: обращение к ключам связанных элементов.
  • В узле Code: использование специальных выражений для доступа к parent items.

Для подробного изучения:

  • Сопоставление данных в UI
  • Сопоставление данных в редакторе выражений
  • Работа с linking в узле Code
  • Ошибки связывания элементов

В Нейро42 можно использовать связывание элементов данных для доступа к элементам, которые были созданы на предыдущих шагах рабочего процесса. Это особенно важно при работе с узлом Code, так как он позволяет программно управлять данными и ссылками между элементами.

Большинство узлов автоматически связывает каждый выходной элемент с соответствующим входным элементом, формируя цепочку данных. Если нужно, вы можете “откатываться” по этой цепочке и получать информацию о предыдущих элементах. Для концептуального понимания смотрите раздел Концепция связывания элементов. Здесь мы сосредоточимся на практическом применении в узле Code.

 

Когда требуется ручное связывание элементов

Нейро42 автоматически управляет linking для одного входного элемента. Однако, если у вас несколько входных элементов, бывают ситуации, когда нужно явно указывать связь с элементами. Это актуально в следующих случаях:

  • Вы создаете новые элементы, которые не связаны с исходными.
  • Вы возвращаете новые элементы из узла.
  • Вы хотите самостоятельно контролировать связи между элементами.

Для всех остальных сценариев платформа управляет связыванием автоматически.

 

Как задать связывание вручную

Чтобы явно привязать новый элемент к исходному, используется поле pairedItem. Оно указывает индекс входного элемента, с которым связан выходной элемент.

Пример структуры элемента с указанием pairedItem:

[

  {

    «json»: {

      «field1»: «значение»,

      «field2»: «значение»

    },

    «pairedItem»: 0

  }

]

Здесь pairedItem: 0 означает, что этот выходной элемент связан с первым элементом из входных данных.

 

Пример использования pairedItem

Допустим, у нас есть входные данные:

[

  {«id»: «23423532», «name»: «Jay Gatsby»},

  {«id»: «23423533», «name»: «José Arcadio Buendía»},

  {«id»: «23423534», «name»: «Max Sendak»},

  {«id»: «23423535», «name»: «Zaphod Beeblebrox»},

  {«id»: «23423536», «name»: «Edmund Pevensie»}

]

 

Если мы создаем новые элементы с добавлением нового поля:

newItems = [];

for(let i=0; i<items.length; i++){

  newItems.push({

    «json»: {

      «name»: items[i].json.name,

      «aBrandNewField»: «New data for item » + i

    }

  });

}

return newItems;

 

В этом случае связь с исходными элементами теряется, так как pairedItem не указан.

Чтобы сохранить связь, добавляем pairedItem:

newItems = [];

for(let i=0; i<items.length; i++){

  newItems.push({

    «json»: {

      «name»: items[i].json.name,

      «aBrandNewField»: «New data for item » + i

    },

    «pairedItem»: i

  });

}

return newItems;

 

Теперь каждый новый элемент связан с исходным элементом, что позволяет в дальнейшем использовать выражение: $(«<node-name>»).item для получения данных предыдущего элемента.

Предупреждение о применении иностранного языка

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

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

Данная мера принята для минимизации рисков неправильного толкования ключевых понятий и предотвращения негативных последствий, связанных с некорректностью переводов сложных технических терминов и выражений.

Мы обращаем внимание на тот факт, что наличие иностранного языка в данной документации обусловлено профессиональной необходимостью и соответствует установленным нормам и правилам использования специализированной литературы и документации в Российской Федерации.

Свяжитесь с нами

* нажимая на кнопку, Вы даете согласие на обработку персональных данных