amazon web services -用于测试lambda函数不工作的话语(但lambda函数本身执行)



我有一个lambda函数,它成功地执行了一个名为GetEvent的意图,返回一个特定的字符串。我已经为这个意图创建了一个用于测试目的的话语(一个简单的,不需要任何可选的插槽来调用技能),但是当使用服务模拟器使用GetEvent的这个话语来测试lambda函数时,我遇到了一个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技能工具包,所以我是相当新的。有什么我不理解的lambda函数,意图图式和话语是如何拼凑在一起的吗?

UPDATE:感谢AWSSupport的一些帮助,我已经将问题缩小到json请求中新会话被标记为true的区域。要使语句工作,必须将其设置为false(在手动输入json请求时有效,在lambda执行期间也是如此)。为什么会这样呢?在调用期间,Alexa是否真的关心它是否是一个新会话?几天前,我也在亚马逊开发者论坛上交叉发布了这篇文章,但是还没有得到别人的回应。

这可能有也可能没有改变——我最后一次使用服务模拟器(大约两周前撰写本文时)它有一个相当严重的错误,这将导致请求被映射到你的第一/错误意图,而不管实际的模拟语音输入。所以,即使你输入一些随机的东西,如wafaaefgae,它只是试图将其映射到你已经定义的第一个意图,不提供槽说的意图,这可能会导致意想不到的结果。

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

在花更多的时间调试这个之前,我建议尝试使用实际的echo或https://echosim.io/-通过实际语音交互工作如预期的意图,不像'模拟器'

最新更新