Да, это возможно.
Когда пользователь навыка открывает ваш навык, вы можете дать приветственное сообщение, за которым следует вопрос.
Пример:
[user] : open note skill
[Alexa] : Welcome to note skill. What note would you like?
----------<Alexa will wait for users input>--------
[user] : ABC note.
[Alexa] : <response>
Для того, чтобы Alexa ожидал ввода данных от пользователя после сообщения приветствия, вам нужно сохранить сеанс в живых. Сеанс сохраняется, основываясь на параметре shouldEndSession
в ответе. Для любого запроса, если он не предоставлен, shouldEndSession
по умолчанию true
. В вашем случае для ответа LaunchRequest
этот параметр shouldEndSession
должен иметь значение false
. Только когда сеанс остается открытым, и пользователи могут продолжать взаимодействие.
Ex:
'LaunchRequest': function() {
const speech = "Welcome to note skill. What note would you like?";
const reprompt = "What note would you like?";
this.emit(':ask', speech, reprompt);
}
Прочтите этот ответ , чтобы узнать больше о том, как сохранить сеанс с помощью ask-nodejs-sdk.
Использование модели диалога
Другой способ добиться этого - использовать директивы Dialog. Диалоговые директивы помогут вам легко заполнять и проверять значения слотов. Вы можете использовать директивы, чтобы запросить у пользователя информацию, необходимую для выполнения его запроса.
Подробнее о директивах Dialog здесь