在构建聊天机器人和使用 QnAMaker 时,我正在关注微软博客中的教程。我现在正在努力添加一个RichCard
.
我需要覆盖内置的一种方法,QnAMakerDialog
因此我可以从我的新类中修改该方法QnaDialog
。
在教程给出的代码中protected virtual Task RespondFromQnAMakerResultAsync
,内置的函数中已经有了QnAMakerDialog
那里的整个代码示例如下所示:
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Connector;
namespace Microsoft.Bot.Builder.CognitiveServices.QnAMaker
{
// Summary:
// A dialog specialized to handle QnA response from QnA Maker.
public class QnAMakerDialog : IDialog<IMessageActivity>
{
protected readonly IQnAService[] services;
public QnAMakerDialog(params IQnAService[] services);
public IQnAService[] MakeServicesFromAttributes();
public Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument);
protected virtual Task DefaultWaitNextMessageAsync(IDialogContext context, IMessageActivity message, QnAMakerResults result);
protected virtual bool IsConfidentAnswer(QnAMakerResults qnaMakerResults);
protected virtual Task QnAFeedbackStepAsync(IDialogContext context, QnAMakerResults qnaMakerResults);
protected virtual Task RespondFromQnAMakerResultAsync(IDialogContext context, IMessageActivity message, QnAMakerResults result);
}
}
但是,在我的实际情况下,QnAMakerDialog 中的代码就是这样的:
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Connector;
namespace Microsoft.Bot.Builder.CognitiveServices.QnAMaker
{
public class QnAMakerDialog : IDialog<IMessageActivity>
{
protected readonly IQnAService[] services;
public QnAMakerDialog(params IQnAService[] services);
public IQnAService[] MakeServicesFromAttributes();
[AsyncStateMachine(typeof(<MessageReceivedAsync>d__4))]
public Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument);
}
}
问题是,上面位于我的 QnAMakerDialog 中的代码不可编辑。
我还有一些东西要从我的 nuggets 包中安装吗?或者有没有其他方法可以解决这个问题?