Alexa 技能:自定义插槽不返回任何值



希望有人可以帮助我解决这个问题,因为我已经被难倒了一个星期。

我正在从其中一个示例中创建一个简单的 Alexa 技能。这是颜色选择器的技能 - 你告诉Alexa你最喜欢的颜色,然后你问她你最喜欢的颜色。我正在使用自定义插槽,技能服务不想返回颜色的值。它成功启动,然后加载正确的意向,但它不会发送正确的值。相反,输出中甚至没有值参数,只有名称和确认状态。

这是我技能的 JSON,然后是我告诉技能后的请求 JSON 输出:"我的颜色是红色。我希望技能将"红色"传递到值参数中。

{
"interactionModel": {
"languageModel": {
"invocationName": "color picker",
"intents": [
{
"name": "MyColorIsIntent",
"slots": [
{
"name": "color",
"type": "LIST_OF_COLORS"
}
],
"samples": [
"my color is {color}",
"{color} is my color"
]
},
{
"name": "WhatsMyColorIntent",
"slots": [],
"samples": [
"what's my color",
"what's my favorite color"
]
},
{
"name": "AMAZON.NavigateHomeIntent",
"samples": []
}
],
"types": [
{
"name": "LIST_OF_COLORS",
"values": [
{
"name": {
"value": "green"
}
},
{
"name": {
"value": "red"
}
},
{
"name": {
"value": "yellow"
}
},
{
"name": {
"value": "orange"
}
},
{
"name": {
"value": "black"
}
},
{
"name": {
"value": "blue"
}
}
]
}
]
}
}
}

下面是请求:

"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.918d6da6-cd7e-4bb8-a2a9-41fb1af8a354",
"timestamp": "2018-10-01T01:53:56Z",
"locale": "en-US",
"intent": {
"name": "MyColorIsIntent",
"confirmationStatus": "NONE",
"slots": {
"Color": {
"name": "Color",
"confirmationStatus": "NONE"
}
}
}
}

您的问题是插槽"颜色"应命名为"颜色",并且您的示例引用已更改以反映这一点,因此"我的颜色是{颜色}"和"{颜色}是我的颜色",它没有拾取插槽,因为名称相同。 请务必使用所需的意图完成技能以进行停止和帮助,目前,这只会继续要求颜色选择,直到您杀死程序。

事情是这样的: 我正在研究同一技能的不同版本,每个版本都有相同的调用名称。当我输入调用名称时,它实际上打开了一个过时的技能版本(我没有删除旧技能 - 我有 3 个不同的技能 - 我喜欢重新开始(。我没有意识到,当您单击"测试"时,您可以测试任何保存的技能,而不仅仅是您打开的技能。

最新更新