2017-09-22 3 views
1

로컬 로봇에서 완벽하게 작동하는 코드 조각이 있고 LUIS와 통합되면 이상합니다. 그것은 또 다른 대화로 리디렉션 간단한 대화입니다 :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? 

이상한 것은 "기능 (세션, 결과)"사무실에 대해 나에게 메시지를 표시 한 후, 그것은 결코를 입력 없다는 것입니다 및 중단 된 대화 코드로 직접 이동합니다.

이 코드 조각은 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를 사용했다 대화가 없습니다.