2016-11-07 48 views
3

我是新來的alexa。我學會了並開始構建天氣應用程序。在亞馬遜給出一個字符串插槽alexa

現在我能得到的氣象資料,但在以下條件下,

我craeated定製插槽(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. 

感謝

回答

1

亞馬遜爲城市甚至地區提供了一些default list Slot Types。例如。

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

定義您的自定義插槽時,您可以使用這些類型。

1

首先,不要使用文字 - 它已被棄用,甚至根本不支持美國地區以外。

而且不,您不能動態管理單詞列表。

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中)。