Объединение, разделение и итерация данных

Как ИИ-процессы Нейро42 работают с разными потоками данных и большими массивами

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

Ниже — как это делается в Нейро42.

Объединение данных

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

Чтобы собрать единый объект, вы объединяете их.

Когда объединение данных необходимо:

  • Создать единый профиль клиента из разных систем
  • Синхронизировать данные между CRM, ERP, CMS
  • Удалить дубликаты или дополнить объект недостающей информацией
  • Собрать полную картину: например, сделки + платежи + активность пользователя

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

Двусторонняя синхронизация подключается, когда изменения актуализируются в обе стороны. Подходит для CRM — Helpdesk, HR — Internal DB.

Merge-узел 

Узел объединения позволяет комбинировать два входящих набора данных несколькими способами:

  • Append — просто присоединить элементы из второго входа
  • Combine — объединить пары элементов
  • Merge by Fields — объединить по совпадающим значениям полей
  • Merge by Position — объединить по индексу
  • Combine all — все возможные комбинации
  • Choose Branch — выбрать данные только одного из потоков

Если вы используете Merge by Fields, помните:

  • поля должны существовать в обоих наборах,
  • значения должны совпадать, иначе объединение некорректно.

Если вам нужно использовать вложенные свойства, например: { «user»: { «id»: 42, «email»: «test@example.com» }}, то в поле Merge нужно указать: user.id в виде текста (не выражения).

 

Итерация и циклы

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

  • узлы, которые всегда обрабатывают только первый элемент
  • API с ограничениями, где нужно пошаговое выполнение
  • сценарии, где выполнение зависит от собственных условий

 

Как создать цикл в Нейро42

  1. Соедините выход одного узла с входом предыдущего.
  2. Добавьте If-узел, который проверяет: “нужно ли повторить цикл”.
  3. Если условие истинно — вернуться в начало.
  4. Если ложь — выполнить следующий шаг.

Это работает аналогично ручному циклу while.

 

Разделение данных на партии

При работе с большими массивами или ограничениями внешних сервисов (API rate limits) важно не отправлять все данные сразу. Для этого используется узел Loop Over Items.

Что делает Loop Over Items:

  • разбивает входящие элементы на группы или партии (batched)
  • выполняет указанную логику для каждой группы отдельно
  • автоматически останавливается, когда все группы обработаны
  • не требует дополнительного If-условия для остановки

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

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

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

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

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

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

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