我在建立聊天机器人和使用QnAMaker时,正在关注微软博客的tutorial。我现在正在努力添加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中的代码是不可编辑的。
我还能从我的掘金包中安装更多东西吗?或者还有其他方法可以解决这个问题吗?