Инструменты
8 800 555-89-02
Войти
Документация
CTRL+K
Standalone2412
SaaS

Инструменты

В этой статье
  • Инструменты
  • Разгруппировать массив
  • Синхронизатор
  • Вернуть данные
  • Выполнить скрипт
  • Фильтр
  • Выполнить инструкцию

Инструментами в скриптах служат следующие блоки:

Разгруппировать массив

Блок разбирает массив на пакеты данных. Следующие блоки выполняются столько раз, сколько элементов внутри массива.

Служит для облегчения работы с массивами и позволяет использовать элементы массивов так, как если бы они были переменными. У блока одно поле для заполнения — массив (выбор из списка полученных данных на основе предыдущих блоков).

Разгруппировать массив

Пример:

  1. В блоке в поле Массив на панели маппинга выбираем массив и нажимаем Тестировать. Данные массива отображаются в квадратных скобках. Поле Массив
  2. На выходе получаем разгруппированные данные. Разгруппированные данные

Синхронизатор

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

Синхронизатор

Вернуть данные

Блок Вернуть данные возвращает данные в источник запроса. Работает с триггерами Ручной запуск и Вебхук.

Вернуть данные

Блок предназначен для получения данных из выполненных скриптов, запущенных вручную или с помощью Вебхука.

Параметры блока:

  • Формат запроса (JSON/текст)
  • Возвращаемые данные

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

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

Чтобы получить возвращаемые данные (при их наличии) при асинхронном режиме работы блока Вебхук, необходимо дождаться выполнения блока Вернуть данные и выполнить в инструменте GraphiQL указанный ниже GraphQL-запрос.

Запрос
Ответ
{
  automation{
    script{
      execution_result(uuid:"5053bb30-3eed-469c-a60a-7b554198ceee"){
        return_data
      }
    }
  }
}

Где:

  • execution_result — идентификатор вебхука. Для получения идентификатора необходимо отправить запрос на адрес вебхука
  • return_data — возвращаемые данные, указанные в параметрах блока Вернуть данные

Чтобы получить статусы при асинхронном режиме работы блока Вебхук, необходимо выполнить в инструменте GraphiQL указанный ниже GraphQL-запрос.

Запрос
Ответ
{
  automation{
    script{
      execution_result(uuid:"5053bb30-3eed-469c-a60a-7b554198ceee"){
        status
      }
    }
  }
}

Где:

  • execution_result — идентификатор вебхука. Для получения идентификатора необходимо отправить запрос на адрес вебхука

Если в скрипт добавлено несколько блоков Вернуть данные, то срабатывает и возвращает данные в источник только первый из этих блоков.

Если скрипт с блоком Вернуть данные прекращает работу с ошибкой или останавливается, в источник возвращается информация о статусе выполнения.

Важно

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

Выполнить скрипт

Блок запускает выполнение выбранного скрипта.

Параметры:

  • Скрипт
  • Ожидаемые поля (если указаны в выбранном скрипте)

Родительский скрипт — это скрипт, который содержит блок Выполнить скрипт, запускающий выполнение дочернего скрипта. После запуска блок ожидает, когда дочерний скрипт полностью выполнится и вернет данные в родительский скрипт.

Заметка
  • Дочерний скрипт должен завершаться блоком Вернуть данные.
  • Запустить можно только те скрипты, которые находятся в том же пространстве, что и родительский скрипт.
  • При тестировании блока или всего родительского скрипта запускается черновик дочернего скрипта. При активации родительского скрипта запускается опубликованная версия дочернего скрипта.

Выполнить скрипт

Важно

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

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

Блок возвращает информацию о выполнении дочернего скрипта:

  • Если дочерний скрипт выполнился успешно, но не возвращает данные, родительский скрипт получает только информацию о том, что дочерний скрипт выполнен
  • Если в дочернем скрипте возникает ошибка, родительский скрипт получает информацию об ошибке и останавливается

В качестве примера рассмотрим два скрипта:

  • Родительский скрипт «Отправить отчет», который отправляет ответственному лицу отчет с информацией о разнице между фактическими и плановыми продажами
  • Дочерний скрипт «Подсчитать отклонения», который рассчитывает отклонения фактических продаж от плановых по каждому магазину. Подсчет отклонений выделен в отдельный скрипт, чтобы к нему могли обращаться другие скрипты, а также для запуска из дашборда для отображения отклонений Дочерний скрипт

Настроим эти скрипты:

  1. Добавим в дочерний скрипт для подсчета отклонения в продажах блок Вернуть данные.
  2. Настроим блок так, чтобы он возвращал идентификатор магазина и процент отклонения для тех магазинов, в которых отклонение от плановых продаж больше 20%. Вернуть данные
  3. Опубликуем дочерний скрипт.
  4. В родительский скрипт добавим блок Выполнить скрипт.
  5. В параметрах блока укажем дочерний скрипт. Выполнить скрипт
  6. Добавим блок Сформировать csv для формирования отчета.
  7. В параметрах блока укажем нужные колонки и подставим в них данные с помощью маппинга. Также активируем переключатель Добавлять заголовки колонок Сформировать csv
  8. Протестируем блок.
  9. Добавим в родительский скрипт блок Отправить письмо.
  10. В параметрах блока укажем получателя, тему письма и сообщение.
  11. Добавим в письмо отчет в виде вложения. Для этого подставим сформированный CSV-файл в соответствующее поле с помощью маппинга. Отправить письмо
  12. Опубликуем родительский скрипт и активируем его. Активация скрипта
  13. Видим, что скрипты выполнены: данные из дочернего скрипта переданы в родительский, отчет сформирован и отправлен. Успешное выполнение

Фильтр

Блок позволяет настроить логику скрипта и направить его по определенной ветке после проверки заданного условия.

Параметры:

  • Подключение (при обращении к БД)
  • Объекты сравнения
  • Условие
Заметка

Данный блок не возвращает данные, а только фильтрует их.

Чтобы настроить скрипт:

  1. Укажите объекты сравнения в Поле.
  2. Задайте условие фильтрации через выпадающий список.
  3. Протестируйте блок с помощью кнопки Тестировать.

Чтобы добавить несколько условий для одной группы объектов, используйте кнопку И.

Чтобы создать дополнительную группу фильтров, используйте кнопку Или.

Чтобы удалить группу фильтров, нажмите кнопку Удалить.

Вы можете направить скрипт по нескольким веткам:

  • Чтобы добавить несколько условий и направить скрипт по разным веткам в зависимости от соответствия данных заданным условиям, добавьте в скрипт несколько блоков Фильтр
  • Чтобы направить по разным веткам скрипт с данными, полученными после проверки одного условия, сделайте нужное количество ответвлений от блока Фильтр

Несколько веток скрипта

Для разных типов данных применимы разные условия:

Типы данныхДоступные условия
Строка- Начинается с
- Не начинается с
- Оканчивается на
- Не оканчивается на
Строка, массив- Содержит
- Не содержит
Все типы данных- Существует
- Не существует
- Равно
- Не равно
Строка, число, дата, дата и время- Больше
- Меньше
- Больше или равно
- Меньше или равно
Дата, дата и время- Последнее время
Логический тип- Истина
- Не истина

Если выбранные типы условий невозможно сравнить, возникает ошибка.

Пример:

  1. Указываем объекты сравнения и выбираем условие фильтрации в выпадающем списке. Применить Фильтр
  2. Запускаем тестирование с помощью кнопки Тестировать. Все дальнейшие действия будут осуществляться с данными, полученными в результате фильтрации.
  3. Добавляем блоки для дальнейшей работы с отфильтрованными данными. Добавление блоков

Выполнить инструкцию

Блок получает инструкцию, которая может быть сформирована вручную или через блок Отправить сообщение пакета «Нейросеть», и выполняет действия с использованием функций следующих блоков:

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

Инструкция передается в виде JSON со следующими полями:

  • Action — тип блока, функции которого нужно выполнить
  • Fields — структура полей для типа выполняемого блока. Необязательные поля можно опустить
  • Index — порядковый номер выполнения, который должен увеличиваться нейросетью

Принцип работы блока:

  • Блок анализирует входные данные. Допустимые значения:
    • JSON
    • Строка break (регистр не имеет значения)
  • Если на вход поступает строка break, блок завершает выполнение с пустым результатом. Выполнение скрипта останавливается после этого блока
  • Если на вход поступает JSON, выполняется проверка типа блока, полей и порядкового номера выполнения
  • Если проверка успешна, блок выполняет функцию указанного типа блока, используя переданные параметры и контекст выполнения

Максимальное количество запусков блока Выполнить инструкцию в одном цикле — 30.

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

Примеры инструкций представлены ниже.

Выполнить скрипт:

{
    "action": "execute_script",
    "key": "",
    "": "",
    "": ""
}

Отправить сообщение:

{
    "action": "query",
    "query": "",
    "model": "",
    "temperature":
}

Отправить HTTP-запрос:

{
    "action": "http_request",
    "url": "",
    "method": "",
    "body": ""
}

Отправить письмо:

{
    "action": "send_email",
    "to": "",
    "subject": "",
    "text": "",
    "format": ""
}

Добавить строки в таблицу:

{
  "action": "insert_rows",
  "table": "",
  "rows": [
     {
    "": "",
        "": ""
     },
      {
    "": "",
        "": ""
     }
  ]
}

Вернуть данные:

{
    "action": "return",
    "value": "",
    "format": ""
}

Пример:

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

  1. Добавим блок Вебхук в качестве триггера. Блок принимает входные данные (промпт) и передает их дальше. Добавление блока Вебхук
  2. Добавим блок Отправить сообщение пакета «Нейросеть».
  3. С помощью маппинга передадим в блок промпт, полученный от блока Вебхук. Нейросеть анализирует поступившие данные, определяет, какой блок следует запустить и формирует инструкцию на основе информации из промпта. Настройка блока Отправить сообщение
  4. Добавим блок Выполнить инструкцию пакета «Цифровой сотрудник».
  5. С помощью маппинга передадим в параметры блока выходные данные блока Отправить сообщение. Блок выполняет сформированную нейросетью инструкцию. Настройка блока Выполнить инструкцию
  6. Добавим блок Отправить запрос пакета «HTTP».
  7. С помощью маппинга передадим в блок выходные данные блока Выполнить инструкцию. Блок Отправить запрос отправляет полученные данные обратно на Вебхук с помощью HTTP-запроса. Настройка блока Отправить запрос
  8. Цикл продолжается до тех пор, пока нейросеть не вернет в блок Выполнить инструкцию команду break. В этот момент выполнение скрипта завершается.

Была ли статья полезна?

Да
Нет
Предыдущая
Работа с нейросетью
8 (800) 555-89-028 (495) 150-31-45team@infomaximum.com
Для бизнеса
© 20102025. ООО «Инфомаксимум»
Мы используем файлы cookies, чтобы сайт был лучше для вас.