Работа со сниппетами
Сниппет — один из видов реакций Лии, который позволяет в ответ на сообщение пользователя выполнить код на JavaScript.
С помощью сниппетов можно:
взаимодействовать с внешним API,
генерировать динамические ответы на основе информации из контекста,
реализовывать любую бизнес-логику
У сниппетов есть ограничения:
по памяти — 128 мб,
по времени выполнения — 5 сек
Создание сниппетов
Чтобы создать сниппет, надо зайти в левом боковом меню в раздел →
и нажать кнопку «+ Добавить».
В центральной части платформы появится сниппет-шаблон, который представляет собой асинхронную js-функцию. Вся логика сниппета прописывается внутри этого шаблона.
Сниппеты в сценарии
Сниппет добавляется в сценарий в качестве реакции на триггер от пользователя. Рассмотрим пример сценария со сниппетом в качестве реакции на намерение.
При нажатии на блок сниппета справа появится возможность выбора сниппета из ранее созданных:
Если выбрать чекбокс «Ошибка», то у блока появится ветвление в сценарии. Это удобно использовать для обработки ошибки исполнения сниппета.
В случае ошибки выполнения сниппета (переход в ветку Fail) факты контекста, установленные в данном сниппете, не сохраняются. Любые события (реакции), генерируемые внутри сниппета, не отправляются.
Поэтому если вы не уверены на 100% в том, что сниппет завершится корректно (все данные от пользователя получены верно, http-запрос пройдёт и не отвалится по тайм-ауту и т. д.) рекомендуется использовать ветку «Fail» для дальнейших действий в случае ошибки.
Встроенные библиотеки и методы
Сниппеты в Лии поддерживают следующие js-библиотеки:
request
Мы сделали готовые шаблоны с часто используемыми методами, которые можно перетягивать в код сниппета.
Есть методы запросов: GET request
, POST request
, axios
, request
;
методы работы с контекстом: get fact
, set fact
, current event
, events history
;
остальные методы — функции, генерирующие реакции.
Тестирование сниппетов
Проверять работу сниппетов вне сценария можно, нажав кнопку «Run» в нижней панели под редактором кода. При следующих нажатиях новое сообщение будет поверх предыдущего.
Если в сниппете используются переменные из контекста (например, последнее сообщение пользователя или факты из API), то при запуске сниппета вне сценария доступа к ним нет, возникнет ошибка.
Для того чтобы тестировать такие сниппеты, можно задавать контекст вручную через надстройку под тестовым чатом.
Устанавливаем факты.
Теперь сниппет выше имеет доступ к контексту, и его можно тестировать.
После проверки работы сниппетов не забудьте удалить все вручную установленные факты оставив в поле «Add global facts» пустой объект {}
Last updated