2017-10-19 2 views
2

Alexaの新機能です。 AWSラムダ関数とNode.jsコードを使ってAlexaスキルを作成しました。これが私の意図スキーマです。スロット値を動的に追加する方法Alexaのスキル

{ 
    "intents": [ 
    { 
     "slots": [ 
     { 
      "name": "locationName", 
      "type": "LOCATION_LIST" 
     } 
     ], 
     "intent": "locationIntent" 
    } 
    ] 
} 

カスタムスロットタイプ "LOCATION_LIST"を次の値で使用しました。

kitchen 
bedroom 
bathroom 
dining area 

正常です。しかし、自分のサービスから動的に位置情報を追加する必要があります。出来ますか?

私のシステムアーキテクチャに基づいて、ロケーション名はあらかじめ定義されていません。それではどうしたらいいですか?

答えて

0

いいえ、スロットを動的に追加することはできません。たぶん、非常に短い答えが、それは事実です。

Amazonには、要件に合わせてデフォルトのスロットもありません。それが都市のような他の場所である場合、 'AMAZON.City'のような利用可能なビルトインスロットがあります。ここでは、カスタムスロットにできるだけ多くの場所を追加する方法しかありません。カスタムスロットに最大50,000のスロット値を設定することができます(インタラクションモデルで使用されるすべてのカスタムスロットで合計されます)。

https://developer.amazon.com/docs/custom-skills/custom-interaction-model-reference.html#custom-slot-type-values

+1

新しいスロットを動的に追加することはできません。しかし、Abdulは新しいスロットやスロットタイプを追加するのではなく、追加のスロット値を求めているようです。その部分は私の答えに記述されているように可能です。 –

2

はい、あなたが求めているものを達成することが可能です。

まず、スロットの仕組みについて明確にしましょう。 this Alexaのブログ記事で説明したように:。

「カスタムスロットタイプを作成すると、理解するための重要な概念は、これがアレクサのNLP(自然言語処理)のためのトレーニングデータであるということであるあなたが提供した値ではありませんあなたのスロットの値にない単語やフレーズがあなたに渡されます、2)あなたのコードは、何が言われているかが分からない場合に必要なバリデーションを実行する必要があります。

これは、SLOT定義に特に記載されていないスロット内の単語を受信できることを意味します。したがって、Alexa NLPエンジンに役立つSLOTリストに十分な単語の例を提供するだけで済みます。

あなたの現在の実装を試し、別の場所に置き換えてみて、Alexaが認識して返すことができるかどうかを確認することをお勧めします。スロット値をログに書き込んでみてください。あなたはうれしく驚くかもしれません。

関連する問題