2016-10-09 5 views
7

Alexaスキルキットで私のインタラクションモデルをテストすると、何か変わったことに気付きました。私のカスタムスロットタイプが予期しない値をとっています

私はそうのようなカスタムスロットタイプ、定義された:

CAR_MAKERS Mercedes | BMW | Volkswagen 

をそして、私の意図スキームのようなものだった:

CountCarsIntent Add {Amount} cars to {CarMaker} 

次のようなサンプル発話と

{ 
    "intents": [ 
    { 
     "intent": "CountCarsIntent", 
     "slots": [ 
     { 
      "name": "CarMaker", 
      "type": "CAR_MAKERS" 
     }, 
    ... 

開発者コンソールでテストするとき、私は次のようなものを書くことができることに気づいた:

"Add three cars to Ford" 

これは実際に正しく解析されます。たとえ "Ford"がインタラクションモデルで決して言及されなかったとしても!ラムダ要求は次のとおりです。custom slot types上のドキュメントはスロットが唯一の相互作用モデルにリストされている値を取ることができるという事実についてかなり明確であるので、これは本当に、私を驚か

"request": { 
    "type": "IntentRequest", 
    ... 
    "intent": { 
     "name": "CountCarsIntent", 
     "slots": { 
     "CarMaker": { 
      "name": "ExpenseCategory", 
      "value": "whatever" 
     }, 
... 

ここで、値も動的に解析されるようです。これは新しい機能ですか、何か不足していますか?

+1

ユーザー@samilesがこの質問に対する答えで私の所見を共有していることに気付きました。http://stackoverflow.com/a/34078869/1375015 –

答えて

5

実際には正常です(と良い、IMO)。 Alexaはあなたが指針として提供する単語リストを使用しますが、決定的なリストは使用しません。

この柔軟性がなければ、ユーザーが期待していない単語を使用していたかどうかを知る方法がありません。このようにして、リストと処理を学び、改善することができます。

関連する問題