Может ли пользователь устанавливать голосовые и слот-синонимы голосом? - PullRequest
0 голосов
/ 24 октября 2018

Я создаю навык с намерениями, высказываниями и слотами. Я хотел бы знать, может ли пользователь установить голос или синоним слотов с помощью голоса.

Мои настройки: Intent: OutletIntent Uterrence: Можете ли вы включить {IOT} Слоты: {IOT}: розетка

Например:

Пользователь: Можете ли вы включитьрозетка, пожалуйста Alexa: Розетка включена

Пользователь: Можете ли вы добавить синоним розетки Alexa: Скажите мне синоним Пользователь: Мощность Alexa: Готово

Пользователь: Можете ли вы включить Силу, пожалуйста: Alexa:Питание включено

А затем

Слоты -> {IOT}: розетка => синонимы: Питание

Прыгните, все ясно, если не стесняйтесьскажи мне хаха, спасибо заранее

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Вы не можете изменить модель взаимодействия навыка как одного из его пользователей.
Как разработчик, вы всегда можете добавить новые синонимы через портал разработчика или через Alexa Skill Management API.Но для каждого изменения, которое вы вносите в модель взаимодействия, требуется перестройка вашего навыка.

Изменения в модели взаимодействия возможны только в development skills (через портал или SMAPI), после публикации вашего навыка вы никогда не сможете добавить синоним.Если вы хотите добавить, тогда его модель взаимодействия изменится, и вам придется пройти сертификацию, прежде чем публиковать эту новую версию навыка (технически новая / обновленная модель взаимодействия).


Когда вы создаете пользовательский тип слота, ключевым понятием, которое нужно понять, является то, что это обучающие данные для NLP Alexa (обработка на естественном языке).Предоставленные вами значения НЕ являются строгим перечислением или массивом, ограничивающим то, что может сказать пользователь.Это имеет два значения:

1) слова и фразы, не входящие в значения вашего слота, будут переданы вам,

2) ваш код должен выполнить любую проверку, которая вам требуется, если сказанное неизвестно

Таким образом, вы можете ожидать, что Alexa вернет значения слотов, которые не определены в примерах.Ваш слот IOT вернет и другие значения.Просто приведите большое количество примеров значений слотов для IOT.Всякий раз, когда бэкэнд вашего навыка получает значение слота, просто подтвердите его и продолжайте.

Если вы хотите отвечать только на добавленные пользователем синонимы, вы можете сохранить новое значение слота, когда пользователь его добавит.Пример:

User: Can you add synonym of outlet
Alexa: tell me the synonym 
User: Power

Теперь, когда вы получите значение этого слота в качестве мощности, сохраните его в списке синонимов, добавленных пользователем для выхода в базу данных.т. е. слот {IOT}.

Alexa: Done

Теперь, когда пользователь говорит:

User: Can you turn on the Power please 

Поскольку Alexa передает другие не определенные значения слотов, вы должны получить IOT значение слота как power.Теперь в своем бэкэнде проверьте, добавлено ли уже значение power в качестве синонима для outlet, и ответьте соответственно.

Для опубликованного навыка любое изменение в модели взаимодействия требует его сертификации до того, как новая версия будетживи снова.

0 голосов
/ 24 октября 2018

Да, вы можете!

Вам нужно создать намерения, которые могут быть такими, как показано ниже:

Намерение: AskForSynonymChange
Выражение: Вы можете добавить синоним {ExistingSlotValue}?

Intent: TakeSynonymValue
Utterance: установите его как {NewSynonymValue}

ExistingSlotValue - это пользовательский слот, значения которого вы уже можете определить на основе всех IOT значений слотов, которые у вас есть.

NewSynonymValue имеет тип AMAZON.SearchQuery

После этого вам необходимо обновить модель взаимодействия на основе приведенных выше ответов, которые вы получаете в своем обработчикеfunctions.

Вы можете использовать 'Alexa Skill Management API' (SMAPI).
Подробнее об этом здесь: https://developer.amazon.com/docs/smapi/interaction-model-operations.html

Вы можете получить текущую модель взаимодействия: https://developer.amazon.com/docs/smapi/interaction-model-operations.html#get-interaction-model

Затем обновите эту модель взаимодействия, добавив {NewSynonymValue} к синонимам {ExistingSlotValue}: https://developer.amazon.com/docs/smapi/interaction-model-operations.html#update-interaction-model

После этого вам нужно опубликовать свой навык, да, снова с SMAPI:
https://developer.amazon.com/docs/smapi/skill-certification-operations.html#request

Дайте мне знать, если это работает для вас.

...