【问题标题】:How to call QnA Maker on a waterfall dialog using C#?如何使用 C# 在瀑布对话框上调用 QnA Maker?
【发布时间】:2019-12-04 16:59:46
【问题描述】:

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

如何从 watterfall 步骤调用它,我是否需要设置 QnA 在瀑布步骤中,我是否需要从 LUIS 意图调用 QnA >,我该怎么办?

我需要它使用上一个问题中的步骤上下文从 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);
}

【问题讨论】:

    标签: c# botframework microsoft-cognitive qnamaker


    【解决方案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

    同样,该示例相当复杂。如果您需要其他指针,请使用您尝试过的代码更新您的问题,我会看看是否可以提供帮助。

    【讨论】:

    • 有人可以帮助我使用 python BotFramework SDK 执行此操作吗?我也为此提出了一个新问题 - Question Link。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多