我正在开发能够回答关于不同的产品不同的问题的一个机器人。 我想在QNA设备针对不同的产品创建多个服务,所以问题和答案不要混起来。 例如,与“我的档案”问题都根据产品不同的答案,我可以用LUIS来处理这方面。
这有可能与多个QNA服务? 是否有任何其他的方法对这一问题?
我正在开发能够回答关于不同的产品不同的问题的一个机器人。 我想在QNA设备针对不同的产品创建多个服务,所以问题和答案不要混起来。 例如,与“我的档案”问题都根据产品不同的答案,我可以用LUIS来处理这方面。
这有可能与多个QNA服务? 是否有任何其他的方法对这一问题?
嗯,我知道了有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不同的意图。