我正在使用AWS ASK SDK for Node.js V2来构建Alexa技能,我想知道是否可以以编程方式生成或更新“意图确认”的“ Alexa Prompt”。
挑战在于我们正在搜索价格,目标是在要求之前将价格注入“意图确认”消息中。
我当时想尝试“重新整理”用户,并在获得价格后强制再次提示,但这感觉很肮脏:
module.exports = {
canHandle(handlerInput) {
return (
handlerInput.requestEnvelope.request.type === 'IntentRequest' &&
handlerInput.requestEnvelope.request.intent.name ===
'HelloWorldIntent'
);
},
async handle(handlerInput) {
let speechText;
let repromptText;
//perform web request to get price
//then dynamically update the intent confirmation response prompt to include price,
//before asking intent confirmation prompt?
return handlerInput.responseBuilder
.speak(speechText)
.getResponse();
}
}
文档至少可以说一遍。
答案 0 :(得分:3)
您可以使用Dialog.ConfirmIntent
指令向Alexa发送命令,以确认用户为该意图提供的所有信息。您还可以提示用户在响应中的OutputSpeech
对象中要求用户确认。
在ask-nodejs-sdk v2中,ConfirmIntent
指令可以通过addConfirmIntentDirective()
发送。
例如:
response = handlerInput.responseBuilder
.speak('The price is 10 dollars, shall I confirm?')
.reprompt('shall I confirm?')
.addConfirmIntentDirective()
.getResponse();
查看this答案以了解更多信息。
有关对话框指令here的更多信息。
检出ResponseBuilder
中的documentation。