在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方法。
编辑:我已经在BotBuilder-CognitiveServices回购提交了一个问题: https : //github.com/Microsoft/BotBuilder-CognitiveServices/issues/62