1

我有一个自定义的Alexa 技能,类似于一些问答技能,在其中我要求用户做出回应(比如 option_1、option_2、option_3),但是当用户使用其中一个询问选项做出回应时,会有不同的意图(比如ruleIntent)被触发是因为选项文本与其utterances有点相似。

我认为如果为相同(或相似)短语触发了多个 IntentHandler,这不是一个好的设计,但是我事先不知道选项的文本以避免这种情况(或者用户要说什么问题的答案)。如果我能以某种方式维护用户响应的上下文,我认为这将是解决方案之一。

例子 : -

1.User : Start a Science test  {Invokes testIntent }.
2.Alexa : Okay, but before starting do you want to know the rules. Please answer in Yes or No. { response generated from testIntentHandler}
3.User : Yes { invokes many intents }

在第 3 行中,即使我将其硬编码为 Intent (比如ruleIntent),那么如果某个问题包含其选项为YesNo会发生什么。我将如何区分这一点并将其映射到所提问题的响应中。

4

2 回答 2

0

解决此问题的一种方法是使用对话框。您可以对对话框使用自动委托

为整个技能或特定意图启用自动委派。在这种情况下,Alexa 会根据您的对话模型完成所有对话步骤。对话完成后,Alexa 会向您的技能发送一个 IntentRequest

将对话委托给 Alexa

于 2019-09-16T22:39:51.547 回答
0

处理此问题的一种方法是使用持久性或会话属性来跟踪状态。

您可以检查 canhandle 方法中的状态,以将用户路由到适当的测试意图

于 2019-09-09T15:04:54.250 回答