Aws lambda Amazon Alexa分层对话框

Aws lambda Amazon Alexa分层对话框,aws-lambda,alexa-skills-kit,alexa-voice-service,Aws Lambda,Alexa Skills Kit,Alexa Voice Service,我正在玩Amazon Alexa SDK,我正在编程我的第一项技能。 我的目标是编写如下对话框: 你住在哪里? 你在那里住了多久了? 问题是我可以用第二个问题的关键词回答第一个问题,然后Alexa假设我回答了第二个问题,并将为我提供第二个问题的答案。 有没有办法防止这种情况 我知道我可以使用会话属性,但对我来说,这看起来相当粗糙 谢谢你的帮助= PS:我正在使用flask询问我的Alexa技能。有几种方法可以组织此对话框。第一种方法,与您当前正在做的类似,是使用一系列单回合对话框。我的猜测是,您

我正在玩Amazon Alexa SDK,我正在编程我的第一项技能。 我的目标是编写如下对话框:

你住在哪里? 你在那里住了多久了? 问题是我可以用第二个问题的关键词回答第一个问题,然后Alexa假设我回答了第二个问题,并将为我提供第二个问题的答案。 有没有办法防止这种情况

我知道我可以使用会话属性,但对我来说,这看起来相当粗糙

谢谢你的帮助=


PS:我正在使用flask询问我的Alexa技能。

有几种方法可以组织此对话框。第一种方法,与您当前正在做的类似,是使用一系列单回合对话框。我的猜测是,您在现有的交互模型中没有使用正确的插槽类型,这就是为什么匹配了错误的意图

如果我使用单圈进近,我有两个意图

第一个意图是匹配对你住在哪里这个问题的回答

第二个答案与你在那里住了多久这个问题的答案相匹配

在这种情况下,我可能会使用一种完全不同的方法,即使用。这种方法将定义一个单一的意图,具有多个必需的插槽值

Intent: GetLivingInfo
Utterance 1: I live in {AMAZON.US_CITY}
Utterance 2: I've lived in {AMAZON.US_CITY} for {AMAZON.NUMBER} years

一个意图,有两个所需插槽。如果用户说我住在波士顿,那么话语1将匹配,Alexa将给出提示,询问他们在那里居住了多少年。查看更多细节。

我认为比尔的答案是最好的解决方案。是的,您可以使用多个问题,但是第二个问题需要通过第一个响应将响应信息传递给它。您可以使用键入用户ID的DB(如DynamoDB)来完成此操作,但我认为在会话中传递它要容易得多。

Bill是100%正确的,按照他的建议修复您的插槽值,并且流应该正常工作。如果你想尝试一下并给我一些反馈,我在MedTime中也做了一些相同的事情。我很高兴与您一起为Alexa培养技能。

谢谢您的回答。我已经知道多回合对话,但我认为可能有一种方法可以构建一个包含多个问题的对话。
Intent: GetAddressDuration
Utterance 1: {AMAZON.NUMBER}
Utterance 2: {AMAZON.NUMBER} years
Utterance 3: For {AMAZON.NUMBER} years
Intent: GetLivingInfo
Utterance 1: I live in {AMAZON.US_CITY}
Utterance 2: I've lived in {AMAZON.US_CITY} for {AMAZON.NUMBER} years