Интент

Интент –

это задача, которую пользователь формулирует в конкретной реплике. Например, узнать погоду. Каждому интенту соответствует одна форма. Подробнее о форме можно узнать в определении: форма в Алисе

Синтаксис

Ниже показан пример описания интента:

    
# Описание интента "turn.on" для включения устройств.
# Эта грамматика позволит распознавать такие фразы как "включи свет на кухне"
# или "включи кондиционер в спальне". 

# Корневой элемент грамматики. Описывает шаблон, по которому будет
# отбираться реплика.
root:
    включи $What $Where

# Описание слотов. Диалоги будут отправлять это описание навыку.
slots:
    what:
        source: $What                   
    where:
        source: $Where
$What:
    свет | кондиционер
$Where:
    в ванной | на кухне | в спальне
    

Примечание. Вложенные элементы следует обозначать отступом в 4 пробела.

Описание интента состоит из ключевых слов root, slots и filler, а также нетерминалов — фраз на естественном языке, описывающих, на какие запросы должна срабатывать грамматика. Нетерминалы обозначаются символом $. Они эквиваленты переменным в языках программирования.

Поддерживаемые ключевые слова:

  • root — обозначение корневого элемента. Описывает шаблон, по которому будет отбираться вся реплика целиком.

    Пример

    
        root:
            [включи $What $Where (и $Where)*]
    

    В этом примере используются квантификатор и оператор [].

  • slots — описание слотов запроса. Это поле будет присутствовать в JSON, который Диалоги отправят в навык после обработки запроса. Подробнее см. Какие данные передаются в навык.

    Пример

    
    slots:
        what:
            source: $What                   
        where:
            source: $Where     
    $What:
        свет | кондиционер
    $Where:
        # Подойдет любая строка, которую введет пользователь.
        .+ 
    
  • filler — стоп-слова, которые можно отбросить при разборе запроса. Для исключения незначащих, неинформативных слов используется специальный классификатор, использующий контекст предложения. Например, для разбора из примера выше срабаботает как фраза «включи свет», так и «включи свет, пожалуйста».

    Пример

    
    filler:
        мне | как всегда | ещё раз | нужно
        

Встроенные интенты

Если в навыке есть хотя бы один интент, Яндекс.Диалоги дополнительно отправляют интенты, универсальные для большинства навыков:

  • YANDEX.CONFIRM — согласие.
  • YANDEX.REJECT — отказ.
  • YANDEX.HELP — запрос подсказки.
  • YANDEX.REPEAT — просьба повторить последний ответ навыка.

Как со мной связаться?

Свяжитесь со мной по любому поводу!
Я с радостью отвечу на все вопросы!

Телефон:

+7(909) 281 35-20

Дополнительная почта:

info@maxim-m.ru

Я в социальных сетях:

ВверхВверх 👆