2017-10-11 9 views
1

J'essaie d'utiliser la méthode onEnabled avec QnAMakerRecognizer, de sorte que je puisse avoir plusieurs QnAMakerRecognizers et que je puisse choisir lequel activer et lequel désactiver. J'ai essayé la suite de cette example et a essayé quelque chose de similaire, mais je reçois une erreur disant:Utilisation de la méthode onEnabled avec QnAMakerRecognizer

TypeError: (intermediate value).onEnabled is not a function

Comment puis-je utiliser correctement la méthode onEnable?

Exemple de code:

var bot = new builder.UniversalBot(connector); 

var qnarecognizer1 = new cognitiveservices.QnAMakerRecognizer({ 
    knowledgeBaseId: knowledgeId, 
    subscriptionKey: subscriptionId, 
    qnaThreshold:0.3, 
    top:1}) 
.onEnabled(function (session, callback) { 
     // Check to see if this recognizer should be enabled 
     if (session.conversationData.useqna1) { 
      callback(null, true); 
     } else { 
      callback(null, false); 
     } 
    }); 

var qnarecognizer2 = new cognitiveservices.QnAMakerRecognizer({ 
    knowledgeBaseId: knowledgeId, 
    subscriptionKey: subscriptionId, 
    qnaThreshold:0.3, 
    top:1}) 
.onEnabled(function (session, callback) { 
     // Check to see if this recognizer should be enabled 
     if (session.conversationData.useqna2) { 
      callback(null, true); 
     } else { 
      callback(null, false); 
     } 
    }); 

var intentrecognizer = new builder.IntentDialog(); 

var intents = new builder.IntentDialog({ recognizers: [intentrecognizer, qnarecognizer1, qnarecognizer2] }); 
bot.dialog('/', intents); 

intents.matches('qna', [ 
    function (session, args, next) { 
      args.entities.forEach(function(element) { 
      session.send(element.entity);  
     }, this);   
    } 
]); 

intents.matchesAny([/hi/i, /main menu/i], [ 
    function (session) { 
    builder.Prompts.choice(session, "Hi, What would you like to ask me about?", ["Service1","Service2"],{ listStyle: builder.ListStyle.button}); 

    }, 

     function (session, result) { 
    var selection = result.response.entity; 
      switch (selection) { 
       case "Service1": 
        session.conversationData.useqna1 = true; 
     session.conversationData.useqna2 = false; 
        session.send('You can now ask me anything about '+selection+'. Type \'main menu\' anytime to choose a different topic.') 
        session.endConversation(); 
        return 

       case "Service2": 
        session.conversationData.useqna1 = false; 
     session.conversationData.useqna2 = true; 
        session.send('You can now ask me anything about '+selection+'. Type \'main menu\' anytime to choose a different topic.') 
        session.endConversation(); 
        return 

      } 
    } 

]) 

Répondre

1