在QnAMakerRecognizer中使用onEnabled方法

我正在尝试在onEnabled使用onEnabled方法,这样我就可以有多个QnAMakerRecognizers,并可以select启用哪个和禁用哪个。 我试着按照这个例子,并尝试类似的东西,但我得到一个错误说:

TypeError:(中间值).onEnabled不是函数

如何正确使用onEnable方法?

示例代码:

 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 } } ]) 

QnAMakerRecognizer不实现Bot Builder IntentRecognizer,并且没有onEnabled方法。

https://github.com/Microsoft/BotBuilder-CognitiveServices/blob/dc3517bf651c4209926aa3a9f2a4df0654ab1d5a/Node/lib/QnAMakerRecognizer.js

https://github.com/Microsoft/BotBuilder/blob/070acb410b70312f418d23e032013c4ddf90fdc5/Node/core/lib/dialogs/IntentRecognizer.js

编辑:我已经在BotBuilder-CognitiveServices回购提交了一个问题: https : //github.com/Microsoft/BotBuilder-CognitiveServices/issues/62