针对单个机器人的多个QnA Maker服务

时间:2017-09-26 15:39:31

标签: node.js bots botframework luis

我正在开发能够回答不同产品的不同问题的机器人。我正在考虑在QnA Maker中为不同的产品创建多种服务,因此问题和答案不会混淆。例如,与我的个人资料相关的问题"根据产品有不同的答案,我可以使用LUIS来处理这种情况。

多个QnA服务可以实现吗?有没有其他方法解决这个问题?

1 个答案:

答案 0 :(得分:0)

好吧,我让它运行了2种不同的QnA服务。我发现的唯一解决方案是调用REST服务而不是使用识别器。

以下是对一项服务进行手动调用的代码:

var fetch = require('node-fetch');
require('dotenv-extended').load({
    path: '../.env'
});

var get_restQnA = function (question, callback){

    qnaurl=`https://westus.api.cognitive.microsoft.com/qnamaker/v2.0/knowledgebases/${process.env.KB_ID}/generateAnswer`;    
    fetch(qnaurl, {
        method: 'POST',
        headers: {
            "Content-Type": "application/json",
            "Ocp-Apim-Subscription-Key": process.env.QNA_KEY
        },
        body: JSON.stringify({
            "question": question,
            "top": 1
        })
    }).then(response => {
        return response.json();
    }).then(data => {
        console.log('Here is the data: ', data);
    }).catch(err => {console.log(err);});
}

module.exports.get_restQnA = get_restQnA;

由于您使用的是唯一服务ID,因此您只需使用LUIS的不同意图调用每项服务。