如何从QnA Maker连接器向Power Virtual Agent返回答案?

时间:2019-11-13 18:21:30

标签: botframework qnamaker power-automate

我正在使用Power Virtual Agent作曲家,但是我无法使QnA Maker的连接器正常工作。该URL通过SoapUI起作用,但是我从“答案”中获得了以下对象。任何尝试解析JSON,初始化变量或尝试获取“答案”文本的尝试都会导致传入请求失败。我在他们的文档中找不到设置此功能的任何示例。谁能帮助我弄清楚如何将QnA Maker答案返回给Power Virtual Agent?

{"output": [{
   "answer": "I'm the EBS Bot! Nice to meet you!",
   "score": 100,
   "id": 55,
   "source": "qna_chitchat_professional.tsv",
   "metadata": [   {
      "name": "editorial",
      "value": "chitchat"
   }],
   "context":    {
      "isContextOnly": false,
      "prompts": []
   }
}]}

这是流程的样子

QnA Maker Flow

2 个答案:

答案 0 :(得分:1)

正如您在问题中提到的,您从“答案”中获得以下对象:

{"output": [{
   "answer": "I'm the EBS Bot! Nice to meet you!",
   "score": 100,
   "id": 55,
   "source": "qna_chitchat_professional.tsv",
   "metadata": [   {
      "name": "editorial",
      "value": "chitchat"
   }],
   "context":    {
      "isContextOnly": false,
      "prompts": []
   }
}]}

上面的json包含“输出”,因此,如果在“响应”操作的“答案”之前添加另一个{“输出”:}。 “响应”操作的“正文”框中的json数据与您提供的架构不匹配。

除此之外,如果要初始化变量以存储“答案”,则可以将变量的类型选择为字符串,并将变量的“值”设置为:

string(body('Generate_answer')?['answers'])

enter image description here

希望对您的问题有帮助〜

答案 1 :(得分:1)

Hury Shen向我指出了正确的方向,但要获得QnA答案并没有什么用。像他的建议中那样初始化变量会触发“应用于每个”块,因为“答案”是一个数组。实际上根本不需要任何变量,您可以直接通过

解析响应

body('Generate_answer')['answers'][0]['answer']

我在Response Body中将其作为JSON返回(我称其为输出,但可以是任何东西),以供虚拟代理使用。这是显示流程的屏幕截图:

enter image description here