Как ИИ-процессы Нейро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
- Соедините выход одного узла с входом предыдущего.
- Добавьте If-узел, который проверяет: “нужно ли повторить цикл”.
- Если условие истинно — вернуться в начало.
- Если ложь — выполнить следующий шаг.
Это работает аналогично ручному циклу while.
Разделение данных на партии
При работе с большими массивами или ограничениями внешних сервисов (API rate limits) важно не отправлять все данные сразу. Для этого используется узел Loop Over Items.
Что делает Loop Over Items:
- разбивает входящие элементы на группы или партии (batched)
- выполняет указанную логику для каждой группы отдельно
- автоматически останавливается, когда все группы обработаны
- не требует дополнительного If-условия для остановки