如何在单个Node.js机器人中集成LUIS和QnA Maker服务?

Fra*_*gel 5 node.js botframework azure-language-understanding azure-cognitive-services azure-qna-maker

我正在使用Microsoft Bot Framework和Node.js SDK开发聊天机器人。我已经集成了LUIS和QnA制造商,但我想尽可能创建这种情况。以以下链接为例,尤其是本节:

机器人可以通过几种方式实现LUIS和QnA Maker的混合:首先调用LUIS,如果没有意图满足特定阈值分数,即触发“无”意图,则调用QnA Maker。或者,为QnA Maker创建LUIS意向,为您的LUIS模型提供映射到“ QnAIntent”的示例QnA问题。

只是一个例子:我有一个QnA KB,其中有一对:“你是谁?” /“嗨,我是你的机器人!”。然后,我的Luis应用程序将这种意图称为“ common”。因此,如果我写信给我的机器人:“你是谁?” 它会回答“嗨,我是你的机器人!”, 相反,如果我写“告诉我你是谁”,它会识别与该问题有关的LUIS意图,但不会回答“嗨,我是你的机器人!”,就像我想象的那样。

所以我想像的是:我问一个问题“告诉我你是谁”->僵尸程序触发意图通用(LUIS)->然后,我希望该僵尸程序会回答我的QnA KB问题->“嗨,我是你的机器人!”

可能吗?谢谢

希望这段代码可以帮助您:

var intents = new builder.IntentDialog({ recognizers[luisRecognizer,qnarecognizer] });

bot.dialog('/', intents);

intents.matches('common_question', [
    function (session, args, next) {
        session.send('Intent common');
        qnarecognizer.recognize(session, function (error, result) {
            session.send('answerEntity.entity');
        });
    } 
]);
Run Code Online (Sandbox Code Playgroud)