3

我是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。

如果我想获得其他城市的温度,我需要将该城市添加到插槽列表中。

请让我知道如何动态获取值,我的意思是不依赖于 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.

谢谢

4

2 回答 2

1

首先,不要使用 LITERAL - 它已被弃用,甚至在美国以外的地区根本不受支持。

不,您不能动态管理单词列表。

Alexa 将尝试将用户所说的内容与您的 LIST_OF_CITIES 进行匹配,并尝试返回其中一个词,但如果它不能匹配其中一个词(如您所见),则可能会返回其他内容。

您可以使用和构建一些城市的自定义插槽类型,请参见此处:
https ://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-交互模型参考#h2_custom_syntax

但这可能对您不起作用,因为每个国家都只是一个国家,因此您需要建立自己的城市列表(在您的 LIST_OF_CITIES 中)。

于 2016-11-07T17:23:16.033 回答
1

亚马逊为城市甚至地区提供了一些默认的列表槽类型。例如

  • AMAZON.US_CITY
  • AMAZON.AT_CITY
  • AMAZON.DE_REGION
  • ...

在定义自定义插槽时,您可以使用这些作为类型。

于 2018-01-08T12:24:30.783 回答