Работа со сниппетами

Сниппет — один из видов реакций Лии, который позволяет в ответ на сообщение пользователя выполнить код на JavaScript.

С помощью сниппетов можно:

  • взаимодействовать с внешним API,

  • генерировать динамические ответы на основе информации из контекста,

  • реализовывать любую бизнес-логику

У сниппетов есть ограничения:

  • по памяти — 128 мб,

  • по времени выполнения — 5 сек

Создание сниппетов

Чтобы создать сниппет, надо зайти в левом боковом меню в раздел →

и нажать кнопку «+ Добавить».

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

Сниппеты в сценарии

Сниппет добавляется в сценарий в качестве реакции на триггер от пользователя. Рассмотрим пример сценария со сниппетом в качестве реакции на намерение.

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

Если выбрать чекбокс «Ошибка», то у блока появится ветвление в сценарии. Это удобно использовать для обработки ошибки исполнения сниппета.

В случае ошибки выполнения сниппета (переход в ветку Fail) факты контекста, установленные в данном сниппете, не сохраняются. Любые события (реакции), генерируемые внутри сниппета, не отправляются.

Поэтому если вы не уверены на 100% в том, что сниппет завершится корректно (все данные от пользователя получены верно, http-запрос пройдёт и не отвалится по тайм-ауту и т. д.) рекомендуется использовать ветку «Fail» для дальнейших действий в случае ошибки.

Встроенные библиотеки и методы

Сниппеты в Лии поддерживают следующие js-библиотеки:

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

Есть методы запросов: GET request, POST request, axios, request;

методы работы с контекстом: get fact, set fact, current event, events history;

остальные методы — функции, генерирующие реакции.

Тестирование сниппетов

Проверять работу сниппетов вне сценария можно, нажав кнопку «Run» в нижней панели под редактором кода. При следующих нажатиях новое сообщение будет поверх предыдущего.

Если в сниппете используются переменные из контекста (например, последнее сообщение пользователя или факты из API), то при запуске сниппета вне сценария доступа к ним нет, возникнет ошибка.

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

Устанавливаем факты.

Теперь сниппет выше имеет доступ к контексту, и его можно тестировать.

После проверки работы сниппетов не забудьте удалить все вручную установленные факты оставив в поле «Add global facts» пустой объект {}

Last updated