Создание пользовательских и динамических значений слота для Alexa Skill - PullRequest
0 голосов
/ 17 октября 2018

Я создаю навык, который позволяет Alexa сначала просматривать все подключенные устройства (например, оборудование для кондиционирования воздуха) и возвращает список из службы (эти имена настраиваются пользователем).Мне нужны эти имена устройств, чтобы хранить их как значения пользовательского слота, чтобы иметь возможность отдавать приказы Алексе типа: Alexa, подскажите температуру {deviceName}.

Есть идеи или предложения?

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018

Нет способа сделать динамические слоты в навыках Alexa.Значения слотов в живом навыке могут быть обновлены только после построения модели взаимодействия и успешной сертификации.
Dialogflow API позволяет динамически обновлять значения слотов
Надеюсь, Amazon скоро добавит что-то подобное.

0 голосов
/ 22 августа 2019

Теперь у Алекса есть возможность использовать Динамические Сущности.

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

Используйте диалоговые окна alexa, и когда dialogState! = 'COMPLETED' проверяет значение слота {deviceName}, и, если его нет в списке, снова вызывайте слот с правильным ответом.Сделайте что-то вроде этого:

if (dialogState === 'STARTED') {
    return handlerInput.responseBuilder
        .addDelegateDirective()
        .getResponse();
}
else if (dialogState !== 'COMPLETED') {
    if (intent.slots.deviceName.value) {
        if ( //check if the deviceName is not in the list ) {
            return handlerInput.responseBuilder
                .speak('Sorry, this device is not added in your list, say again...')
                .addElicitSlotDirective(intent.slots.deviceName.name)
                .getResponse();
        }
        else {
            return handlerInput.responseBuilder
                .addDelegateDirective()
                .getResponse()
        }
}
else {
    //dialogState is 'COMPLETED'
    //here you have the correct device name
}
...