Заполнение слотов из запроса


Если рассматривать интент как функцию, которую клиент может вызвать, слот является переменной, параметром этой функции.

Например, для интента /Погода примером фразы может быть Погода в Лондоне сегодня и два слота City и Date. Для примера фразы в слот City попадет — Лондон, в слот Date — сегодня.

При этом заполненные слоты будут переданы в сценарий в переменной $parseTree._<ИмяСлота>. В значении переменной будет ассоциированное значение, при его отсутствии — текст.

Использование заполненных слотов в сценарии:

    state:
        intent!: /Погода
        a: Погода в {{ $parseTree._City }} на {{ $parseTree._Date }}

Атрибут Тип

Каждый слот должен иметь Тип, который соответствует сущности Тип = сущность. Этот тип определяет тип данных, которые попадут в слот. Вы можете использовать как системные, так и кастомные сущности.

Например, для слота Date с типом @zb.datetime: слово "сегодня" из запроса клиента попадет в сущность @zb.datetime и будет помещено в слот Date.

Если в интенте присутствует несколько слотов с одинаковым типом, то они будут заполнены последовательно.

При необходимости обработать произвольное количество слотов одного типа в запросе или переменные с разными типами сущностей, обращайтесь к структуре $entities, в которую будут переданы все найденные сущности в исходном виде.


Атрибут Обязательность

Каждый слот имеет атрибут Обязательность:

  • Если слот обязателен и при этом уточняющие вопросы не указаны, то система не будет выдавать этот интент без заполненного слота в ответах.
  • Если слот обязателен и при этом уточняющие вопросы указаны, то система может вернуть интент без этого слота. Интент будет обработан модулем слот-филлинга, клиенту будут заданы уточняющие вопросы.

Массивы в слотах

Для обработки запросов с повторяющимися сущностями в сценарии необходимо в заполненном слоте $parseTree._<ИмяСлота> иметь массив.

Переведите переключатель Массив в активное положение, чтобы в слот помещались все сущности данного типа, оформленные как массив:

массивы в слотах

Если переключатель Массив:

  • Не активен: в слот помещается первое обработанное значение данной сущности.
  • Активен: в слот помещаются все сущности данного типа, оформленные как массив. Если обнаружено только одно значение сущности, оно также оформляется как массив.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней