Если рассматривать интент
как функцию, которую пользователь может вызвать, то слот
является переменной, параметром этой функции.
Например, для интента /Погода
примером фразы может быть «Погода в Лондоне сегодня» и два слота City
и Date
.
В этом случае в слот City
попадет — Лондон, а в слот Date
— сегодня.
При этом заполненные слоты будут переданы в сценарий в переменной $parseTree._<ИмяСлота>
. В значении переменной будет ассоциированное значение, при его отсутствии — текст.
Использование заполненных слотов в сценарии:
state:
intent!: /Погода
a: Погода в {{ $parseTree._City }} на {{ $parseTree._Date }}
Атрибут Тип
Каждый слот должен иметь Тип
, который соответствует сущности Тип = сущность
. Этот тип определяет тип данных, которые попадут в слот. Вы можете использовать как системные, так и собственные сущности.
Например, для слота Date
с типом @zb.datetime
: слово «сегодня» из запроса клиента попадет в сущность @zb.datetime
и будет помещено в слот Date
.
Если в интенте присутствует несколько слотов с одинаковым типом, то они будут заполнены последовательно.
Если нужно обработать произвольное количество слотов одного типа в запросе или переменные с разными типами сущностей, обращайтесь к переменной $entities
, которая содержит все найденные сущности в исходном виде.
Атрибут Обязательность
Каждый слот имеет атрибут Обязательность
:
- Если слот обязателен и при этом уточняющие вопросы не указаны, то заполнение слота в ответе обязательно для срабатывания интента.
- Если слот обязателен и при этом уточняющие вопросы указаны, то интент сработает и без этого слота. Интент будет обработан модулем слот-филлинга, пользователю будут заданы уточняющие вопросы.
Перед работой со слот-филлинга ознакомьтесь с заполнением слотов.
Массивы в слотах
Для обработки запросов с повторяющимися сущностями в сценарии слот $parseTree._<ИмяСлота>
должен содержать массив.
Включите опцию Массив, чтобы в слот помещались все сущности данного типа, оформленные как массив.
Если опция Массив:
- Не активна: в слот помещается первое обработанное значение данной сущности.
- Активна: в слот помещаются все сущности данного типа, оформленные как массив. Если обнаружено только одно значение сущности, оно также оформляется как массив.