Получение связанных данных из предыдущих узлов

Как вернуть данные из любого шага воркфлоу, даже если они были преобразованы позже

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

Для этого используется метод:

$(«Имя узла»).itemMatching(currentNodeInputIndex)

Он позволяет сопоставить текущий элемент (по индексу) с элементом, который участвовал в его создании в другом узле.

Когда это нужно?

Этот механизм незаменим, если:

  • вы упростили или отфильтровали данные промежуточными узлами, но хотите вернуть поле из исходного набора
  • нужно восстановить email, ID, дату или другие атрибуты
  • при построении ИИ-агента требуется хранить ссылку на оригинальные данные, но не дублировать их в каждом узле

Разбор примера

Представим последовательность узлов:

  1. Customer Datastore

Генерирует элементы вроде:

[

  {

    «id»: «23423532»,

    «name»: «Jay Gatsby»,

    «email»: «gatsby@west-egg.com»,

    «notes»: «Keeps asking about a green light??»,

    «country»: «US»,

    «created»: «1925-04-10»

  },

  {

    «id»: «23423533»,

    «name»: «José Arcadio Buendía»,

    «email»: «jab@macondo.co»,

    «notes»: «Lots of people named after him. Very confusing»,

    «country»: «CO»,

    «created»: «1967-05-05»

  }

]

 

  1. Edit Fields

Упрощает структуру, оставляя только:

[

  { «name»: «Jay Gatsby» },

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

]

 

Теперь email потерян — но его можно вернуть.

  1. Code Node

Восстанавливает емайл, сопоставляя элементы по индексу:

[

  {

    «name»: «Jay Gatsby»,

    «restoreEmail»: «gatsby@west-egg.com»

  },

  {

    «name»: «José Arcadio Buendía»,

    «restoreEmail»: «jab@macondo.co»

  }

]

 

Код восстановления связанных данных

JavaScript (Code node)

for (let i = 0; i < $input.all().length; i++) {

  $input.all()[i].json.restoreEmail = $(‘Customer Datastore (n8n training)’)

    .itemMatching(i)

    .json.email;

}

 

return $input.all();

 

Как это работает

  • i — индекс текущего элемента
  • $(‘Customer Datastore)’) — ссылка на узел-источник
  • .itemMatching(i) — возвращает элемент, который соответствует текущему по индексу
  • .json.email — извлекает нужные данные

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

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

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

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

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

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

Спасибо, получили вашу заявку!
Скоро мы с вами свяжемся.

А пока посмотрите реализованные проекты, которыми мы поделились на сайте.