因此,我们正在建立一个用户可以设置提醒的系统。目前我的意图设置为提供Day
和Time
。如果我说set reminder for next tuesday at 9pm
之类的东西,在我的意图中我会看到价值进展顺利。问题是,如果我们说他们说set reminder for next tuesday
之类的东西,他们给了我们一天而不是时间。所以在我的意图中,我有这样的回应:
else if(obj.Day.value && !obj.Time.value) {
this.response.speak(`Looks like you requested a reminder on ${obj.Day.value}, what time would you like the reminder set for?`).listen('Thanks');
console.log(JSON.stringify(this.response, null, 2));
this.emit(':responseReady');
}
我遇到的问题是......我怎么得到他们说的话?我也试过了this.emit(':ask', '...')
,但我仍然没有看到他们实际说的话。
对不起,如果这令人困惑,基本上这是一个简化的问题。
在Alexa询问意图中的某些内容后,我们如何得到用户的回复(缺少信息)?
答案 0 :(得分:1)
为此,您需要使用elicitSlot
指令。 Docs found here.
尝试:
this.emit(':elicitSlot','slotName','intentName');
如果您将Time
放入上面的"Time"
媒体资源,Alexa会知道您希望填写下一位用户对slotName
广告位的回复。
在Alexa控制台中,您可以指定Alexa应该如何引出该插槽。您甚至可以提供多种询问方式,Alexa将选择一种方式。