Использование Выражения

Выражения — один из самых мощных инструментов в Нейро42.

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

  • из предыдущих шагов воркфлоу
  • из текущего контекста сценария
  • из переменных проекта и окружения Нейро42

Кроме того, выражения поддерживают выполнение JavaScript прямо внутри параметра, что делает их удобным способом трансформировать данные без написания отдельного кода.

Как работают выражения

Нейро42 использует собственный шаблонизатор, расширенный:

  • встроенными методами и переменными
  • функциями для трансформации данных
  • поддержкой популярных библиотек:

Luxon — работа с датами/временем

JMESPath — удобные запросы к JSON

Эти расширения позволяют легко:

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

Работа с данными в выражениях

Чтобы эффективно писать выражения, важно понимать структуру данных в Нейро42.

Каждый узел передает свой JSON-объект дальше по цепочке, и выражения дают доступ к этим данным через служебные переменные:

  • $json — данные текущего узла
  • $prev — данные предыдущего узла
  • $env — переменные окружения
  • $workflow — метаданные сценария
  • $jmespath() — запросы к JSON через JMESPath

Как использовать выражения

  1. Наведите курсор на параметр
  2. Переключитесь в режим Выражение
  3. Введите выражение вручную

Или откройте редактор выражений, где доступен проводник данных (Variable Browser).

Все выражения записываются в формате:

{{ ваша логика здесь }}

Пример 1: Доступ к данным тела вебхука

Допустим, входящие данные вебхука имеют структуру:

[

  {

    «headers»: {

      «host»: «neuro42.instance»

    },

    «params»: {},

    «query»: {},

    «body»: {

      «name»: «Jim»,

      «age»: 30,

      «city»: «New York»

    }

  }

]

 

Чтобы получить только значение поля city:

{{ $json.body.city }}

 

Этот пример:

  • обращается к JSON тела вебхука через $json
  • извлекает значение поля city

Альтернативная запись:

{{ $json[‘body’][‘city’] }}

 

или с использованием JMESPath:

{{ $jmespath($json, ‘body.city’) }}

 

Пример 2: Многострочные выражения на JavaScript

Если нужно выполнить несколько операций подряд, выражение можно оформить как IIFE (Immediately Invoked Function Expression):

{{ (() => {

  let end = DateTime.fromISO(‘2017-03-13’);

  let start = DateTime.fromISO(‘2017-02-13’);

  let diff = end.diff(start, ‘months’);

  return diff.toObject();

})() }}

 

Здесь:

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

Такая форма удобна, когда логика становится длиннее одной строки.

Распространенные проблемы

Для ошибок и типичных сценариев отладки см. раздел:

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

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

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

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

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

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

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

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