在一个漫游器中使用多个QnA服务 [英] Use multiple QnA services in one bot

查看:80
本文介绍了在一个漫游器中使用多个QnA服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有多个运行的QnA服务,每个服务都有自己的knowledgeBaseIdsubscriptionKey.我想在单个聊天机器人中同时使用它们,并且编写了一段代码,该代码需要用户输入并分配正确的知识库详细信息.但是,我无法激活第二个QnA服务,并且该漫游器仅链接到第一个服务.这里可能出什么问题了?

I have multiple QnA services running, each with it's own knowledgeBaseId and subscriptionKey. I want to use them both in a single chatbot and I've written a piece of code which takes the user input and assigns the correct Knowledgebase details. However, I'm unable to get the 2nd QnA service to become active and the bot is linking only to the first service. What might be going wrong here?

示例代码:

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 

           }
   }

])

推荐答案

查看我的答案是否对您在此问题上的目的有效: 单个机器人的多个QnA Maker服务

Check out if my answer is valid to your purpose on this question: Multiple QnA Maker services for a single bot

希望您发现它有用.

这篇关于在一个漫游器中使用多个QnA服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆