0

我有一个 lambda 函数,它成功执行了一个名为GetEvent返回特定字符串的意图。我为此意图创建了一个语句用于测试目的(一个简单且不需要任何可选插槽来调用技能),但是当使用服务模拟器测试 lambda 函数时,GetEvent我' m 遇到了一个 lambda 响应,上面写着"The response is invalid". 这是交互模型的样子:

#Intent Schema

   {
   "intents": [
     {
       "intent": "GetVessel",
       "slots": [
         {
           "name": "boat",
           "type": "LIST_OF_VESSELS"
         },
         {
           "name": "location",
           "type": "LIST_OF_LOCATIONS"
         },
         {
           "name": "date",
           "type": "AMAZON.DATE"
         },
         {
           "name": "event",
           "type": "LIST_OF_EVENTS"
         }
       ]
     },
     {
       "intent": "GetLocation",
       "slots": [
         {
           "name": "event",
           "type": "LIST_OF_EVENTS"
         },
         {
           "name": "date",
           "type": "AMAZON.DATE"
         },
         {
           "name": "boat",
           "type": "LIST_OF_VESSELS"
         },
         {
           "name": "location",
           "type": "LIST_OF_LOCATIONS"
         }
       ]
     },
     {
       "intent": "GetEvent",
       "slots": [
         {
           "name": "event",
           "type": "LIST_OF_EVENTS"
         },
         {
           "name": "location",
           "type": "LIST_OF_LOCATIONS"
         }
       ]
     }
   ]    
}

使用适当的自定义技能类型语法,并且,

#First test Utterances
GetVessel what are the properties of {boat}

GetLocation where did {event} occur

GetEvent get me my query

当给 Alexa 话语时get me my query,lambda 响应应该像在执行中一样输出字符串。我不确定为什么不是这样。这是我第一个使用 Alexa Skills Kit 的项目,所以我很新。lambda函数、意图模式和话语是如何拼凑在一起的,有什么我不理解的吗?

更新:感谢 AWSSupport 的帮助,我已将问题缩小到 json 请求中新会话标记为true. 为了使话语起作用,必须将其设置为false(这在手动输入 json 请求时起作用,在 lambda 执行期间也是如此)。为什么会这样?Alexa 是否真的关心它在调用期间是否是新会话?几天前我也在亚马逊开发者论坛上交叉发布了这个,但还没有得到任何人的回复。

4

1 回答 1

0

这可能会也可能不会改变——我最后一次使用服务模拟器时(大约在撰写本文时两周前)它有一个非常严重的错误,这会导致请求被映射到你的第一个/错误意图,无论实际模拟语音输入。因此,即使您输入了一些随机的内容,wafaaefgae它只是尝试将其映射到您定义的第一个意图,没有为所述意图提供任何插槽,这可能会导致意外结果。

您的问题很可能与此相关,触发相同的意外/错误行为,因为您没有在示例话语中使用任何插槽

在花更多时间调试之前,我建议使用实际回声或https://echosim.io/尝试 Intent - 通过实际语音进行的交互按预期工作,这与“模拟器”不同

于 2016-07-13T08:59:13.023 回答