我正在使用带有 Node.js SDK 的 Microsoft Bot Framework 开发一个聊天机器人。我已经集成了 LUIS 和 QnA maker,但如果可能的话,我想创建这个场景。以以下链接为例,特别是本节:
机器人可以通过多种方式实现 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');
});
}
]);