如何使用C#在瀑布对话框上调用QnA Maker?

时间:2019-12-04 16:59:46

标签: c# botframework microsoft-cognitive qnamaker

我正在尝试在瀑布对话框上调用 QnA Maker

如何在此watterfall步骤中调用它,我是否需要设置QnA?在瀑布步骤中,我是否需要从 LUIS目的中调用 QnA < / strong>,我该怎么办?

Code

我需要它使用上一个问题的步骤上下文从QnA获得第一个结果。

有人可以帮忙吗?

代码:

private async Task<DialogTurnResult> QnaAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
    var response = await qnaMaker.GetAnswersAsync(stepContext);

    // use answer found in qnaResults[0].answer
    return await stepContext.PromptAsync(nameof(TextPrompt), new PromptOptions { Prompt = MessageFactory.Text(response[0].Answer)}, cancellationToken);
}

1 个答案:

答案 0 :(得分:1)

似乎您的上面的代码中没有定义qnaMaker。只要您在某处定义了QnAMaker服务,您就可以真正从任何地方调用QnAMaker。

我建议关注this sample。它相当复杂,但却是在瀑布对话框中使用QnAMaker的最佳示例。

我将指出一些您会发现最有用的部分:

  1. Create the QnAMaker service
  2. 使用dependency injection,以便您可以access the BotServices from anywhere in the project
  3. Add the services to the dialog's constructor
  4. Call the QnAMaker service

同样,该样本相当复杂。如果您需要其他指针,请使用您尝试的代码更新您的问题,我会帮助您。