测试lambda函数不起作用的话语(但lambda函数本身执行)

时间:2016-06-29 19:31:35

标签: amazon-web-services aws-lambda alexa-skills-kit

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

#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真的关心它是否是在调用期间的新会话? I've cross-posted this to the Amazon Developer Forums以及几天前,但尚未收到某人的回复。

1 个答案:

答案 0 :(得分:0)

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

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

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

相关问题