[英]How to clear custom slot value programmatically in Alexa?
我有一項Alexa技能,該技能需要以編程方式覆蓋用戶提供的值。
我嘗試過取消該值,然后將其作為“更新的Intent”傳遞。
this.event.request.intent.userPrompt.value = null;
var updatedIntent = this.event.request.intent;
this.emit(':elicitSlot', 'userPrompt',"Say something","Say something", updatedIntent);
但是,輸入的JSON顯示先前的值。 有針對這個的解決方法嗎?
有
delete this.event.request.intent.slots.<slotname>.value;
var updatedIntent = this event.request.intent;
this.emit(':elicitSlot', <slotname>,"Say something","Say something", updatedIntent);
如果您的插槽具有自定義插槽類型,則還必須
delete this.event.request.intent.slots.<slotname>.resolutions;
對於版本V2,您應該以這種方式更新意圖(據我所知)
handlerInput.responseBuilder
.addDelegateDirective(newIntent)
.getResponse();
newIntent
應該是可以設置新插槽值的對象,例如:
const resetIntent = (handlerInput) => {
const intent = {
name : 'myIntentName',
confirmationStatus: 'NONE',
slots : {
slotOne: {
name: 'slotOne',
confirmationStatus: 'NONE'
}
}
}
return handlerInput.responseBuilder
.addDelegateDirective(intent)
.getResponse();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.