2016-04-07 15 views
7

私はAlexaスキルを書いています。Alexaスキルキットからシングルワードパラメータを取得するだけです

{ 
    "intents": [ 
    { 
     "intent": "HeroQuizIntent", 
     "slots": [ 
     { 
      "name": "SearchTerm", 
      "type": "SEARCH_TERMS" 
     } 
     ] 
    }, 
    { 
     "intent": "HeroAnswerIntent", 
     "slots": [ 
     { 
      "name": "SearchTerm", 
      "type": "SEARCH_TERMS" 
     } 
     ] 
    }, 
    { 
     "intent": "AMAZON.HelpIntent" 
    } 
    ] 
} 

と私のサンプル発話は次のとおりです:ここ

は意図スキーマです

HeroQuizIntent quiz me 
HeroAnswerIntent is it {SearchTerm} 

HeroAnswerIntentのために、私は検索語のスロットをチェックしています、と私は、単一の単語を取得していますそこで。

「ピーター・パーカー」は「パーカー」を、「スティーブ・ロジャース」は「ロジャース」を、「トニー・スターク」は「スターク」をそれぞれ与えます。

スロットに複数の単語を受け入れるにはどうすればよいですか?

+0

json構造の手掛かりはありますか?何も明らかではない。構造を投稿する価値があるかもしれません。 –

+0

良い点。ここでは、Lamdaに送信される要求の関連部分を示します。 – Xanxir

+0

' "リクエスト":{ "タイプ": "IntentRequest"、 "requestId": "EdwRequestId.da0c74ea-15bd-45b9-a69e-76c523f08195"、 "タイムスタンプ":「2016-04-08T18:04:45Z 」 "意図":{ "名前": "HeroAnswerIntent"、 "スロット":{ "検索語":{ "名前": "検索語"、 "値": "パーカー" } } } } – Xanxir

答えて

0

スロットタイプをAMAZON.LITERALに変更する必要がありました。

トリックは、サンプルの発話では、Alexaが解釈するリテラルの最小サイズと最大サイズを示すために複数の発話を提供する必要があるということでした。それは意地悪だが、うまくいく。

がここにそれのための参照です:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interaction-model-reference

2

私は私のスキルと同じ問題を持っていたし、それはいくつかの単語を使用するために私のスキルのために働いている唯一のソリューションですが、あなたは確認する必要があるこれらのスロットは空ではありません

{ 
    "intent": "HeroAnswerIntent", 
    "slots": [ 
    { 
     "name": "SearchTermFirst", 
     "type": "SEARCH_TERMS" 
    }, 
    { 
     "name": "SearchTermSecond", 
     "type": "SEARCH_TERMS" 
    }, 
    { 
     "name": "SearchTermThird", 
     "type": "SEARCH_TERMS" 
    } 
    ] 
}, 

サンプル発話

:及びそれらに

テントスキーマを連結

そして最後に、あなたがSEARCH_TERMSスロット定義

で別の行にあなたの言葉のあらゆるを置く必要がある1つはまたAMAZON.LITERALを使用すると、時々、(あなたがサービスのシミュレータを使用してテストしても、まったくスキルに変数を渡しませんスキルコンソール、テストタブ)

0

上記の@Xanxirの解決策は、新しいcustom slots形式と同等に機能します。この場合、スロットタイプのカスタム値リストに複数の長さの例を入れるだけです。

関連する問題