我是alexa的新手。我学会了并开始构建天气应用程序。
现在我能够获得天气数据,但在以下情况下,
我已经开始使用自定义广告位(LIST_OF_CITIES)来保存城市,如下所示。
{
"intents": [
{
"intent": "WeatherIntent",
"slots": [
{
"name": "city",
"type": "LIST_OF_CITIES"
}
]
},
{
"intent": "AMAZON.HelpIntent"
},
]
}
并在我的自定义插槽中,如下所示。
Type Values
LIST_OF_CITIES Hyderabad | pune | london
以下是我的话语
WeatherIntent give me {city} climate
WeatherIntent {city}
WeatherIntent what's the climate in {city}
WeatherIntent what's the weather in {city}
WeatherIntent {city}
当我使用上表中提到的三个城市中的任何一个来运行我的程序时,我能够得到正确的答案。如果我使用除上述之外的任何东西,它将返回值为-4。
如果我想得到其他城市的温度,我需要在插槽列表中添加该城市。
请让我知道如何动态获取vaues,我的意思是取决于LIST_OF_CITIES,如果我输入城市名称,它应该发回结果。
此外,我尝试添加类型作为LITERAL,也作为AMAZON.LITERAL。当我保存它时,我得到了例外
Error: There was a problem with your request: Unknown slot name '{city}'. Occurred in sample 'WeatherIntent get me weather of {city}' on line 1.
Please let me know where am I going wrong and how can I fix this.
由于
答案 0 :(得分:1)
首先,不要使用LITERAL - 它已被弃用,甚至在美国以外的地区都不受支持。
不,你无法动态管理单词列表。
Alexa将尝试将用户所说的内容与您的LIST_OF_CITIES相匹配,并尝试返回其中一个单词,但如果无法匹配其中一个单词,则可能会返回其他内容(如您所见)。
您可以使用和构建的城市有一些自定义插槽类型,请参见此处:
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interaction-model-reference#h2_custom_syntax
但这可能不适合你,因为他们每个人只是一个国家,所以你需要建立自己的城市列表(在你的LIST_OF_CITIES中)。
答案 1 :(得分:1)
亚马逊为城市甚至地区提供了一些default list Slot Types。 E.g。
AMAZON.US_CITY
AMAZON.AT_CITY
AMAZON.DE_REGION
您可以在定义自定义广告位时将其用作类型。