希望有人能帮我解决这个问题,因为我已经被难住一周了。
我正在创建一个简单的Alexa技能从一个样本。这是挑选颜色的技巧--你告诉Alexa你最喜欢的颜色,然后再问她你最喜欢的颜色。我使用的是自定义插槽,而技能服务不想返回颜色的值。它成功启动,然后加载正确的意图,但是它没有发送正确的值。相反,输出中甚至没有值参数,只有名称和确认状态。
下面是我的技能的JSON,然后是我告诉技能:“我的颜色是红色”之后的请求JSON输出。我希望技能将"red“传递到value参数中。
{
"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"
}
}
}
}发布于 2018-10-02 12:22:28
你的问题是槽" color“应该被命名为" color”,并且你的示例引用被更改以反映这一点,因此"my color is {Color}“和"{Color} is my color”,它不会选取该槽,因为它们的名称相同。确保也完成了停止和帮助所需的意图的技能,目前,这将继续要求颜色选择,直到你杀死程序。
发布于 2018-10-03 09:29:33
发生了这样的事情:我正在研究同一技能的不同版本,每个版本都有相同的调用名称。当我输入调用名称时,它实际上打开了一个过时的技能版本(我没有删除旧技能-我有3个不同的技能-我喜欢重新开始)。我没有意识到,当你点击“测试”时,你可以测试任何你保存的技能,而不仅仅是你打开的技能。
https://stackoverflow.com/questions/52601148
复制相似问题