我正在使用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();
}
}
文档缺乏至少可以说。
您可以使用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答案了解更多信息。
更多关于Dialog指令here。
看看documentation的ResponseBuilder
。