带有 QnaMaker 和 FormFlow 的机器人框架



我正在制作一个与QnaMaker通信的机器人,根据答案,应该使用Json通过FormFlow打开引导式对话。我的问题正是在这一点上,以便打开表单。我正在使用 SDK V3 和 QnAMakerDialog of the garypretty

我已经尝试了几种方法,例如调用上下文。转发或上下文。打电话,但不对,也许我打电话的方式错误。

始终返回消息,指出源代码中存在问题。

public override async Task DefaultMatchHandler(IDialogContext context, 
string originalQueryText, QnAMakerResult result)
{
    QnaAnswer a = result.Answers.First();
    var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);
    if (a.Answer == "form")
    {
       // OPEN FORM HERE
    }
    await context.PostAsync(messageActivity);
   context.Wait(MessageReceived);
}

解决方案:

public static bool IsForm = false;
 public override async Task DefaultMatchHandler(IDialogContext context, 
 string originalQueryText, QnAMakerResult result)
 {
     QnaAnswer a = result.Answers.First();
     var messageActivity = ProcessResultAndCreateMessageActivity(context, ref result);
     if (a.Answer == "form")
     {
         IsForm = true;
         var form = new FormDialog<JObject>(new JObject(), JsonForm.BuildJsonForm, FormOptions.PromptInStart);
         context.Call(form, FormCallback);
     }
     else
     {
          IsForm = false;
          messageActivity.Text = $"{result.Answers.First().Answer}";
     }
     if (IsForm == false)
     {
         await context.PostAsync(messageActivity);
         context.Wait(MessageReceived);
     }
 }

谢谢凯尔。

相关内容

  • 没有找到相关文章

最新更新