【问题标题】:Multiple QnA Maker services for a single bot单个机器人的多个 QnA Maker 服务
【发布时间】:2018-03-07 22:13:45
【问题描述】:

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

是否可以使用多个 QnA 服务?有没有其他方法可以解决这个问题?

【问题讨论】:

  • 这绝对是可能的,但要正确地做到这一点具有挑战性。您可以为每个 QnA 服务设置单独的意图,然后路由查询。
  • 几天前我问过几乎同样的问题。也尝试了一些东西,但无法使其正常工作。很想知道你是否可以让它工作。 stackoverflow.com/questions/46409189/…

标签: node.js bots botframework azure-language-understanding


【解决方案1】:

嗯,我让它运行了 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 的不同意图调用每个服务。

【讨论】:

  • 现在有一个official guide 来说明如何使用调度工具来做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
相关资源
最近更新 更多