如何使用 C# 在瀑布对话框中调用 QnA Maker?
How to call QnA Maker on a waterfall dialog using C#?
我正在尝试在 瀑布式对话步骤 上调用 QnA Maker。
如何从 watterfall
步骤调用它,是否需要设置 QnA 在瀑布步骤上,是否需要从 QnA LUIS 意图,我能做什么?
我需要它使用上一个问题的步骤上下文从 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);
}
您上面的代码中似乎没有定义 qnaMaker
。只要您在某处定义了 QnAMaker 服务,您就可以真正地从任何地方调用 QnAMaker。
我推荐关注 this sample。它相当复杂,但却是在瀑布对话框中使用 QnAMaker 的最佳示例。
我会指出一些您会发现最有用的部分:
- Create the QnAMaker service
- 使用dependency injection so that you can access the BotServices from anywhere in the project
- Add the services to the dialog's constructor
- Call the QnAMaker service
同样,该示例相当复杂。如果您需要其他指示,请使用您尝试过的代码更新您的问题,我会看看是否可以提供帮助。
我正在尝试在 瀑布式对话步骤 上调用 QnA Maker。
如何从 watterfall
步骤调用它,是否需要设置 QnA 在瀑布步骤上,是否需要从 QnA LUIS 意图,我能做什么?
我需要它使用上一个问题的步骤上下文从 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);
}
您上面的代码中似乎没有定义 qnaMaker
。只要您在某处定义了 QnAMaker 服务,您就可以真正地从任何地方调用 QnAMaker。
我推荐关注 this sample。它相当复杂,但却是在瀑布对话框中使用 QnAMaker 的最佳示例。
我会指出一些您会发现最有用的部分:
- Create the QnAMaker service
- 使用dependency injection so that you can access the BotServices from anywhere in the project
- Add the services to the dialog's constructor
- Call the QnAMaker service
同样,该示例相当复杂。如果您需要其他指示,请使用您尝试过的代码更新您的问题,我会看看是否可以提供帮助。