2017-06-03 17 views
1

これはかなり簡単な質問ですが、答えのエビデンスは見つかりません。私はスロットのタイプを私にリストにしたいのです。つまり、Lexはそのリストの要素をもっと求めなければなりません。例えばAmazon AWS Lexスロットタイプリスト

が、ここでは前後がどのように見えるかです:ラムダに送信されます

Lex: What flowers would you like to order? 
Me: roses 
Lex: Any other types? 
Me: yes, I also want lillies 
Lex: Anything else? 
Me: that is all 

例ペイロードは、次のようになります。

{ 
    "currentIntent": { 
    "slots": { 
     "PickupDate": "2030-11-08", 
     "PickupTime": "10:00", 
     "FlowerType": "lilies" 
    }, 
    "name": "OrderFlowers", 
    "confirmationStatus": "None" 
    }, 
    "bot": { 
    "alias": "$LATEST", 
    "version": "$LATEST", 
    "name": "OrderFlowers" 
    }, 
    "userId": "John", 
    "invocationSource": "DialogCodeHook", 
    "outputDialogMode": "Text", 
    "messageVersion": "1.0", 
    "sessionAttributes": {} 
} 

ことを^^^AWS Lambdaコンソールのテスト設定例から直接取得しました。

私はそれが次のようになりたい:

{ 
    "currentIntent": { 
    "slots": { 
     "PickupDate": "2030-11-08", 
     "PickupTime": "10:00", 
     "FlowerTypes": [ 
      "roses",  
      "lilies" 
     ]  
}, 
    "name": "OrderFlowers", 
    "confirmationStatus": "None" 
    }, 
    "bot": { 
    "alias": "$LATEST", 
    "version": "$LATEST", 
    "name": "OrderFlowers" 
    }, 
    "userId": "John", 
    "invocationSource": "DialogCodeHook", 
    "outputDialogMode": "Text", 
    "messageVersion": "1.0", 
    "sessionAttributes": {} 
} 
+0

http://docs.aws.amazon.com/lex/latest/dg/API_Slot.htmlによると、「スロット」は常に文字列です。追加のスロットを追加して達成しようとしていることを達成できますか?例えばFlowerType01、FlowerType02、... FlowerType99? –

+0

私はできましたが、もっと良い方法があると期待しています –

+0

バリデーションフックを作成して、魅力的なスロットコールを利用して、あなたの花の配列に移入して、 'sessionAttribute'として保存することができます。これは面倒ですし、上記のように複数のスロットを使用するほうが良いでしょう。 – Milk

答えて

1

レックススロットは常に文字列であるので、あなたはより洗練された解決策を考え出す必要があります。私は次のように提案します:

  1. 注文する花を尋ねる意図を作成します。あなたは '花'というスロットを引き出すべきです。
  2. コードを実行するときは、スロットから入力を取り出し、それをセッション属性に追加します。あなたが注文したい花をもう一度入力するか、完了したら「完了」をクリックしてください。
  3. もう一度スロットを取得します。
  4. (セッションに追加する前に)スロットを確認するたびに、「完了」と一致するかどうかを確認します。そうであれば、注文を完了してからイベントを実行することができます。

グーフィー、私は知っていますが、レックスはスロットのオプションが非常に限られています。

+0

これはかなりクールな回避策です。それぞれの 'ElicitSlot'を実行する前にスロットを無効にする必要があることに注意してください。間に「ConfirmIntent」を付けて一度に1つの花を受け入れる方が良いでしょう。はい/いいえ答えです。 –

関連する問題