2017-07-07 9 views
0

MS BotFrameworkを使用してボットでLUISレコグナイザを使用する場合、どのようにハンドルを実行しますか?適応カードのLUISを使用して適応カードでActionを処理する方法

var recognizer = new builder.LuisRecognizer(config.LUIS_MODEL_URL); 
bot.recognizer(recognizer); 

bot.dialog('toolAccess', [ 
    function (session,args,next) { 

      const msg = new builder.Message(session) 
         .addAttachment({ 
      //adaptive card body here with Action.submit buttons... 
      }); 
      session.send(msg); 
    } 
]).triggerAction({ matches : 'toolAccess'}); 
//toolAccess is an intent in my LUIS app. 

私のアクションは次のとおりです。

"actions": [ 
       { 
        "type": "Action.Submit", 
        "data": { 
          "type": "okProfileSelection" 
        }, 
        "title": "OK" 
       }, 
       { 
        "type": "Action.Submit", 
        "data": { 
          "type": "cancelProfileSelection" 
        }, 
        "title": "Cancel" 
       } 
      ] 

そこで問題は、私はこれらのOKボタンとキャンセルボタンの取り扱いはどうすればよいのですか?別のダイアログを追加する必要がありますか?もしそうなら、triggerActionはどのようにすべきですか?

答えて

0

あなたの設定あなたのボットは、このようなデフォルトのハンドラを使用します。完全な作業例について

var bot = new builder.UniversalBot(connector, function (session) { 

    if (session.message && session.message.value) { 
     // A Card's Submit Action obj was received 
     processSubmitAction(session, session.message.value); 
     return; 
    } 

    // Display Welcome card with Hotels and Flights search options 
    // load Adaptive Card from JSON file 
    var card = require('./card-hotels-flights-search.json'); 

    // send the card with form 
    var msg = new builder.Message(session).addAttachment(card); 
    session.send(msg); 
}); 

チェックアウト:BotBuilder-Samples/Node/cards-AdaptiveCards

+0

あなたがLUIS認識を使用していないを参照している例を。だから、session.messageを扱うコンストラクタコールバックをそこで使うことができます: 'var bot = new builder.UniversalBot(connector、function(session){...}'しかし、LUISを使用するボットでは、 LUISレコグナイザが使用されているボットで[アクション]ボタン –

+0

をキャプチャします。[アクション]ボタンは、常にダイアログにルーティングしようとしています。 route? LUISを使ってボットで実行することは絶対に避けてください –

+0

[更新]:問題は私が 'このデフォルトのハンドラの内部では「console.log」というメッセージが表示されていました。 –

関連する問題