Вы не можете изменить модель взаимодействия навыка как одного из его пользователей.
Как разработчик, вы всегда можете добавить новые синонимы через портал разработчика или через 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
, и ответьте соответственно.
Для опубликованного навыка любое изменение в модели взаимодействия требует его сертификации до того, как новая версия будетживи снова.