Node.js 在一个bot中使用多个QnA服务

Node.js 在一个bot中使用多个QnA服务,node.js,botframework,Node.js,Botframework,我有多个QnA服务正在运行,每个都有自己的knowledgeBaseId和subscriptionKey。我想在一个聊天机器人中同时使用它们,我已经编写了一段代码,它接受用户输入并分配正确的知识库细节。但是,我无法使第二个QnA服务变为活动状态,并且bot仅链接到第一个服务。这里可能出了什么问题 示例代码: var knowledgeId = "FIRST_QNA_SERVICE_KNOWLEDGE_ID"; var subscriptionId = "FIRST_QNA_SERVICE_SU

我有多个QnA服务正在运行,每个都有自己的
knowledgeBaseId
subscriptionKey
。我想在一个聊天机器人中同时使用它们,我已经编写了一段代码,它接受用户输入并分配正确的知识库细节。但是,我无法使第二个QnA服务变为活动状态,并且bot仅链接到第一个服务。这里可能出了什么问题

示例代码:

var knowledgeId = "FIRST_QNA_SERVICE_KNOWLEDGE_ID"; 
var subscriptionId = "FIRST_QNA_SERVICE_SUBSCRIPTION_ID";

var bot = new builder.UniversalBot(connector);

var qnarecognizer = new cognitiveservices.QnAMakerRecognizer({
    knowledgeBaseId: knowledgeId, 
    subscriptionKey: subscriptionId,
    qnaThreshold:0.3,
    top:1});

var intentrecognizer = new builder.IntentDialog();

var intents = new builder.IntentDialog({ recognizers: [intentrecognizer, qnarecognizer] });
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":
                    knowledgeId = "FIRST_QNA_SERVICE_KNOWLEDGE_ID"; 
                    subscriptionId = "FIRST_QNA_SERVICE_SUBSCRIPTION_ID";
                    session.send('You can now ask me anything about '+selection+'. Type \'main menu\' anytime to choose a different topic.')
                    session.endConversation();
                    return 

               case "Service2":
                    knowledgeId = "SECOND_QNA_SERVICE_KNOWLEDGE_ID"; 
                    subscriptionId = "SECOND_QNA_SERVICE_SUBSCRIPTION_ID";
                    session.send('You can now ask me anything about '+selection+'. Type \'main menu\' anytime to choose a different topic.')
                    session.endConversation();
                    return 

           }
   }

])

您从未更新过QNAMAKER识别器上的
知识ID
/
订阅ID
。。。这就是为什么你总是看到第一个QnA服务被调用的原因


查看是否有方法更新QnAMakerRecognizer上的
knowledgeId
中的这些值您从未更新过QnAMakerRecognizer上的
knowledgeId
/
subscriptionId
。。。这就是为什么你总是看到第一个QnA服务被调用的原因


查看是否有方法更新
QnAMakerRecognizer

中的这些值,查看我的回答是否符合您对这个问题的目的:


希望对您有用。

检查我的回答是否符合您对这个问题的目的:


希望您觉得它有用。

无法更新它。你能给我一个建议吗?也许只是重新创建识别器?无法更新它。你能给我一个建议吗?也许只是重新创建识别器?