Alexa使用某些插槽值而不是其他插槽值调用意图吗?

时间:2019-04-25 13:48:22

标签: node.js lambda alexa

我有一个应在“是”,“否”或“重复”上调用的处理程序。在“不”和“重复”上,它绝对完美。回答“是”,我得到一个错误。然后我检查Cloudwatch,它说找不到合适的处理程序。但是,当我在Lambda中测试广告位的值时,“ yes”是完美的。

这可能是怎么回事?是出于某些原因,“是”不应该通过设计起作用吗?与AMAZON有关。也许是Intent吗?

这是我的意图交互模型的摘录:

       {
            "name": "RoundingVerifyIntent",
            "slots": [
                {
                    "name": "RoundingVerify",
                    "type": "ROUNDING_VERIFY"
                }
            ],
            "samples": [
                "{RoundingVerify}"
            ]
        },

这是插槽类型的详细信息:

{
                    "name": "ROUNDING_VERIFY",
                    "values": [
                        {
                            "name": {
                                "value": "no",
                                "synonyms": [
                                    "that's wrong",
                                    "wrong",
                                    "nah",
                                    "noooo",
                                    "no way",
                                    "nope",
                                    "nah"
                                ]
                            }
                        },
                        {
                            "name": {
                                "value": "yes",
                                "synonyms": [
                                    "correct",
                                    "that's correct",
                                    "yop",
                                    "yup",
                                    "yep",
                                    "yeah"
                                ]
                            }
                        },
                        {
                            "name": {
                                "value": "repeat",
                                "synonyms": [
                                    "pardon me",
                                    "say again",
                                    "repeat again"
                                ]
                            }
                        }
                    ]
                },

更新:我试图添加一个elicit插槽指令,以直接推入所需的意图并引发该插槽,并且仍然保留相同的行为...感谢您的帮助。

UPDATE2: 好的,所以我在修改指令后就可以使用它了。这样就可以了。

.addDirective({
          "type": "Dialog.ElicitSlot",
          "slotToElicit": "RoundingVerify",
          "updatedIntent": {
            "name": "RoundingVerifyIntent",
            "confirmationStatus": "NONE",
            "slots": {
              "RoundingVerify": {
                "name": "RoundingVerify",
                "value": "yes",
                "resolutions": {},
                "confirmationStatus": "NONE"
              }
            }
          }
        })

我假设如果将值放在其中,它将自动将其设置为yes,这不是我想要的...但是由于某种原因,它会等待用户输入。有人可以告诉我为什么吗?

非常感谢。

仍然坚信我的第一种方法应该可行,并且可能存在错误,但这无疑是一个更好的解决方案。

0 个答案:

没有答案