Контекст
Kонтекст - ключевой объект в Lia, который содержит в себе уникальную для каждого пользователя информацию о проекте, пользователе и взаимодействии пользователя с виртуальным ассистентом.
Контекст полезно использовать, когда:
для сценария нужна информация о пользователе, полученная по API;
в сценарии нужно выводить текст в зависимости от данных конкретного пользователя;
нужна переменная, доступная нескольким сниппетам.
Устройство контекста
Объект контекст содержит следующие базовые ключи:
context.fact_name
– факты, установленные вручную, полученные по API и т.п.context.project_id
– id проектаcontext.user_id
– id пользователяchannel_id
– id канала, с которого пришло сообщение (например виджет или API)context.events
– массив событий (текстовых сообщений и прочих триггеров/реакций)context.current
– быстрый доступ к последнему событию от пользователя
context.events
Сообщения из переписки хранятся в context.events
, который имеет следующую структуру:
В объекте 'params'
лежат параметры сообщения в зависимости от типа.
В 'meta'
во входящих сообщениях лежат намерения и сущности, в исходящих - название реакции из сценария.
context.current
В context.current
содержится последнее входящее событие из context.events
.
Установка фактов
Существует несколько способов добавления фактов в context:
в сниппете через
context.set('key', 'value')
: такие факты будут доступны во всех сниппетах черезcontext.key
передача по Lia API в JSON-объект
facts
сущности, распознанные Lia, автоматически добавляются в контекст и доступны по
context.entity_name
. Поэтому сущностям следует давать название на латинице в соответствии с традиционными правилами названия переменных в коде.вручную через надстройку под debug-чатом
Если ключи в контексте имеют одинаковые названия, то будет храниться факт с наивысшим приоритетом.
Порядок приоритетности фактов контекста (от большего к меньшему):
системные факты:
'project_id'
,'user_id'
,'channel_id'
,'events'
,'current'
context.set('key', 'value')
или заданные вручнуюраспознанные Lia
entities
facts
из API
Контекст автоматически удаляется для пользователя в случае отсутствия от него обращений в течение 48 часов.
Примеры использования
В сниппетах
Last updated