在下面的示例中:如果用户说太妃糖,那不应该翻译成糖果吗?我之所以问,是因为传递给我的意图的价值是太妃糖。所以不确定我有什么不对。
In the following example: If the user says toffee, shouldn't that be translated to candy? I ask because the value handed to my intent is 'toffee'. So not sure what I have incorrect.
types":[ { "name":"SHOPPING_LIST", "values":[ { "id":null, "name":{ "value":"candy", "synonyms":[ "toffee" ] } }, { "name":"GetPrice", "samples":[ "Get me the price of {item}", "tell me the price of {item}", ], "slots":[ { "name":"item", "type":"SHOPPING_LIST" } ] }推荐答案
我们需要在您的后端代码中处理实体解析。 b $ b更多信息可以在这里参考: developer.amazon/blogs/alexa/post/5de2b24d-d932-4c6f-950d -d09d8ffdf4d4 / entity-resolution-andslot-validation
We need to handle the entity resolution in your backend code. More can be referred here: developer.amazon/blogs/alexa/post/5de2b24d-d932-4c6f-950d-d09d8ffdf4d4/entity-resolution-and-slot-validation
在您的代码中,您可以添加
In your code you can add,
this.attributes.item = slotValue(this.event.request.intent.slots.item);此外,在您的处理程序函数之外添加此
Also, add this outside your handler function,
function slotValue(slot, useId){ let value = slot.value; let resolution = (slot.resolutions && slot.resolutions.resolutionsPerAuthority && slot.resolutions.resolutionsPerAuthority.length > 0) ? slot.resolutions.resolutionsPerAuthority[0] : null; if(resolution && resolution.status.code == 'ER_SUCCESS_MATCH'){ let resolutionValue = resolution.values[0].value; value = resolutionValue.id && useId ? resolutionValue.id : resolutionValue.name; } return value; }现在,当用户输入太妃糖时,它将转换为糖果。
Now when your user enters toffee, it will be translated to candy.
更多推荐
如何在Alexa中处理意图中的同义词?
发布评论