2017-09-22 11 views
1

ローカルのボットで完璧に動作するコードを用意しています。これは、別のダイアログにリダイレクトする簡単な対話です:LUIS.aiを使用したbotframeworkのダイアログ

// Modelo de datos cargado en luis.ai 
    var recognizer = new builder.LuisRecognizer(process.env.LUIS_MODEL_URL); 
    bot.recognizer(recognizer); 

    //first intent, greeting intent to say hi to the user 
    bot.dialog('greetings', [ 
     function (session) { 
      var greetings = ["¡Hola!", "Bonjour amigo!", "zdravstvuyte! (Así se dice hola en ruso)"]; 
      var pickAGreeting = function() { 
       var rnd_greeting = greetings[Math.floor(Math.random() * 4)]; 
       return rnd_greeting; 
       }; 
      session.send(pickAGreeting(), session.message.text); 
      builder.Prompts.text(session, 'What can I do for you about Office?'); 
     }, 
     function (session, results) { 
      var user_response = results.response; 
      session.beginDialog('getProductoOffice', user_response); 
     } 
    ]).triggerAction({ 
     matches: 'greetings', 
     onInterrupted: function (session) { 
      session.send('Can I help you with something?'); 
     } 
    }); 

    bot.dialog('getProductoOffice', [ 
     function (session, args) { 
      session.send('Welcome to O365 help!', session.message.text); 
    ... 

And the bot does this: 
[me]: Hola 
[bot]: ¡Hola! 
[bot]: What can I do for you about Office? 
[me]: Tell me about Skype 
[bot]: Can I help you with something? 

奇妙なことには、Officeについての私を促した後、それは「機能(セッション、結果を)」に入ることはありませんし、中断した対話コードに直接行くことです。

このコードはLUISとの統合なしで完全に動作し、ダイアログ間を正しく移動します。

答えて

1

triggerActionの動作のためにLUISによって認識された発声を入力するたびに、ダイアログが中断されました。

var recognizer = new builder.LuisRecognizer('<model>').onEnabled(function (context, callback) { 
    var enabled = context.dialogStack().length == 0; 
    callback(null, enabled); 
}); 

このダイアログスタックを中断しないだろうとがある場合にのみ認識器は動作します:次のように

タスクがIを実行している、認識を無効にするには、認識方法onEnabledを使用していました会話は実行されません。

関連する問題