Смартап задает уточняющие вопросы последовательно, в порядке их определения для всех незаполненных слотов.
В ответах пользователя определяются сущности, соответствующие слотам. Слот заполняется при определении подходящей сущности.
После заполнения всех слотов, управление передается в основной сценарий. Заполненные слоты доступны в переменной $parseTree
.
Выйти из сценария слот-филлинга можно после ответа на все уточняющие вопросы, либо с помощью команды /start
.
Рассмотрим сценарий:
state:
intent!: /Погода
a: Погода в {{ $parseTree._City }} на {{ $parseTree._Date.value }}
При этом слоты заполнены следующим образом:
Здесь @City
— пользовательская сущность, содержащая все города, для которых может быть предоставлен прогноз погоды.
Запросы пользователя:
Погода на завтра в Москве
: слоты заполнены, ассистент сразу предоставит ответ.Погода на завтра
: слотCity
не заполнен, задаются уточняющие вопросы. После получения корректного ответа, управление переходит в основной сценарий, ассистент отвечает.Погода в Москве
: слотDate
не заполнен, задаются уточняющие вопросы. После получения корректного ответа, управление переходит в основной сценарий, ассистент отвечает.