Активация и деактивация навыка

Разговор с навыком может начать только сам пользователь — навык может только отвечать на запросы. Чтобы начать разговор, пользователь должен сказать Алисе активационную фразу с именем нужного навыка.

В продуктах Яндекса передача контроля навыку может быть реализована одним из двух способов:

  • Алиса передает слово навыку до тех пор, пока он не будет деактивирован.
  • Для каждого нового навыка Алиса открывает отдельную вкладку, между которыми может переключаться пользователь.
Простая активация навыка

Алиса всегда запускает навык, если пользователь использует следующие активационные фразы:

  • «запусти навык [активационное имя]»;
  • «запусти чат с [активационное имя]»;
  • «давай поиграем в [активационное имя]» и «поиграем в ...»;
  • «давай сыграем в [активационное имя]» и «сыграем в ...».
Например, «давай поиграем в города».
Примечание. Иногда Алиса может понять, что пользователь хочет запустить навык, даже если используется другая фраза, например «запусти игру в города». Но не стоит рассчитывать на то, что такая фраза будет срабатывать каждый раз.

По умолчанию, в качестве активационного имени используется название навыка. Вы можете установить дополнительные активационные имена — это может быть аббревиатура названия или его склонение. Например, для навыка «Крокодил» можно добавить активационное имя: «крокодила». Тогда пользователь сможет запустить навык командой «давай поиграем в крокодила».

Также активационные имена следует добавлять, если для названия навыка возможны разные варианты написания или произнесения. Например, для названия «S7» можно добавить активационные имена: «эс севен», «эс семь» и «авиакомпания сибирь». Так Алисе будет проще изучить название навыка и она быстрее научится распознавать его.

Активационные имена добавляются в Консоли разработчика.

Активация навыка с командой

Некоторые навыки (например, справочные) может быть удобно запускать сразу с входными данными. Для этого нужно использовать специальные активационные слова:

  • «скажи [активационное имя] [команда]»;
  • «узнай у [активационное имя] [команда]»;
  • «попроси [активационное имя] [команда]»;
  • «спроси у [активационное имя] [команда]».

Например, «спроси Сбербанк где ближайшее отделение».

В протоколе взаимодействия для этого случая предусмотрено свойство request.command. При активации навыка в это свойство попадает весь текст, кроме активационной фразы. Если пользователь просто скажет спроси Сбербанк, свойство request.command в запросе будет пустым.

Деактивация навыка

Пользователь возвращается к обычному разговору с Алисой, если:

  • Навык возвращает пользователя Алисе. Когда разговор подошел к логическому концу, в ответе Яндекс.Диалогам правильно вернуть флаг "end_session": true.

  • Навык присылает ответ, не соответствующий формату, или не укладывается в 3 секунды, отведенные для ответа.
  • Пользователь произносит фразу «Алиса, вернись.» или нажимает кнопку Закончить ❌.