0

GetEvent特定の文字列を返すインテントで正常に実行されるラムダ関数があります。テスト目的で、このインテントに対して 1 つの発話を作成しました (単純で、スキルを呼び出すためのオプションのスロットを必要としないもの)。ただし、サービス シミュレーターを使用して、この発話でラムダ関数をテストするGetEvent場合m は、 というラムダ応答に遭遇しました"The response is invalid"。対話モデルは次のようになります。

#Intent Schema

   {
   "intents": [
     {
       "intent": "GetVessel",
       "slots": [
         {
           "name": "boat",
           "type": "LIST_OF_VESSELS"
         },
         {
           "name": "location",
           "type": "LIST_OF_LOCATIONS"
         },
         {
           "name": "date",
           "type": "AMAZON.DATE"
         },
         {
           "name": "event",
           "type": "LIST_OF_EVENTS"
         }
       ]
     },
     {
       "intent": "GetLocation",
       "slots": [
         {
           "name": "event",
           "type": "LIST_OF_EVENTS"
         },
         {
           "name": "date",
           "type": "AMAZON.DATE"
         },
         {
           "name": "boat",
           "type": "LIST_OF_VESSELS"
         },
         {
           "name": "location",
           "type": "LIST_OF_LOCATIONS"
         }
       ]
     },
     {
       "intent": "GetEvent",
       "slots": [
         {
           "name": "event",
           "type": "LIST_OF_EVENTS"
         },
         {
           "name": "location",
           "type": "LIST_OF_LOCATIONS"
         }
       ]
     }
   ]    
}

適切なカスタム スキル タイプの構文と、

#First test Utterances
GetVessel what are the properties of {boat}

GetLocation where did {event} occur

GetEvent get me my query

Alexa に発話を与えるget me my queryと、実行時と同じようにラムダ応答が文字列を出力するはずです。なぜそうでないのかはわかりません。これは Alexa Skills Kit を使った最初のプロジェクトなので、かなり初心者です。ラムダ関数、インテント スキーマ、および発話がすべてどのように組み合わされているかについて、私が理解していないことはありますか?

更新: AWSSupport からの助けのおかげで、新しいセッションにフラグが付けられた json リクエストの領域に問題を絞り込みましたtrue。発話が機能するには、これを に設定する必要がありますfalse(これは、json 要求を手動で入力するときに機能し、ラムダの実行中も同様です)。これはなぜですか?Alexa は、呼び出し中に新しいセッションかどうかを本当に気にしますか? 数日前にこれを Amazon Developer Forums にもクロスポストしましたが、まだ誰かから返事がありません。

4

1 に答える 1