gpt4 book ai didi

c# - 如何在 Microsoft botbuilder 的对话框中检查 Bot 发布的消息?

转载 作者:行者123 更新时间:2023-12-03 02:58:23 25 4
gpt4 key购买 nike

我正在使用 Microsoft botbuilder 在 .NET 中创建一个聊天机器人,并使用 Web 应用程序机器人代码作为我的模板。我找不到包含 qna 制造商从机器人发布给用户的文本的变量。目前,我正在每次机器人回答用户问题后创建另一个对话框,但我不希望机器人在发布默认消息时执行此操作。当我调试时,我似乎找不到 qnamaker 的答案存储在哪里。

如果有人知道答案存储在哪里以及如何访问它,那将非常有帮助,或者可能检查对话框中的最新消息。

目前我的根对话框有这个片段:

await context.Forward(new BasicQnAMakerDialog(), AfterAnswerAsync, message, CancellationToken.None);

转发的方法是:

private async Task AfterAnswerAsync(IDialogContext context, IAwaitable<IMessageActivity> result)
{
context.Call(new PostAnswerDialog(), AfterPost);

}

我想检查机器人是否在 context.Call(new PostAnswerDialog(), AfterPost) 之前响应默认消息,如果有则执行其他操作。

最佳答案

您必须自定义您的QnAMakerDialog。来源可用 here了解它是如何工作的。

例如,您可以重写在进程结束时(无论是否匹配)调用的 DefaultWaitNextMessageAsync 方法:

// Dialog for QnAMaker GA service
[Serializable]
public class BasicQnAMakerDialog : QnAMakerDialog
{
// Go to https://qnamaker.ai and feed data, train & publish your QnA Knowledgebase.
// Parameters to QnAMakerService are:
// Required: qnaAuthKey, knowledgebaseId, endpointHostName
// Optional: defaultMessage, scoreThreshold[Range 0.0 – 1.0]
public BasicQnAMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(ConfigurationManager.AppSettings["QnAAuthKey"], ConfigurationManager.AppSettings["QnAKnowledgebaseId"], "No good match in FAQ.", 0.5, 1, ConfigurationManager.AppSettings["QnAEndpointHostName"])))
{
}

protected override async Task DefaultWaitNextMessageAsync(IDialogContext context, IMessageActivity message, QnAMakerResults result)
{
if (result.Answers.Count > 0)
{
// DO YOUR LOGIC HERE
await context.PostAsync("Case where you have matching results");
}

await base.DefaultWaitNextMessageAsync(context, message, result);
}
}

关于c# - 如何在 Microsoft botbuilder 的对话框中检查 Bot 发布的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51253839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com