Azure虚拟助理提示按钮



我已经设置了一个Microsoft azure虚拟助理,但没有连接到Luis,并且尚未部署。

在qnamaker网站上,它成功地完成了多圈后续按钮,但没有在机器人模拟器上完成。

我想知道这是否是因为一开始没有设置和部署虚拟助理造成的。因为在创建虚拟助理时,默认的贺卡甚至无法显示。

我是不是缺少了一些显示后续提示按钮的代码,还是因为Luis没有连接,部署也没有设置,所以不可能?如果我遗漏了一些代码,有人能给我指正确的方向吗?

注意:这是一个虚拟助理,而不是机器人。它们很相似,但机器人教程对虚拟助理不起作用。我正在使用最新的虚拟助理模板。我做了很多研究,但都解决不了。我已经花了两天时间在这上面了。

谢谢

多回合功能是一个可以在门户qnamaker.ai中打开的功能,但您的机器人仍然负责处理带有按钮的卡的发送消息。

  • 因此,在门户中启用多回转将允许对generateanswerAPI的调用返回包含prompts值的"context"对象的响应
  • 第2步是确保您的助理拥有创建卡片的代码。您必须处理何时生成卡片

您可以在botbuilder samplesrepo(70.qnamaker-multiturn-sample(中找到一个机器人程序实现多回合提示的示例。它构建卡片的片段,我将在下面发布,但我建议直接查看样本,看看它周围的逻辑,了解你什么时候真正想用卡片发送消息(只有在contextprompt存在的情况下,他们才会发送卡片——你可以根据你的机器人的需要定制它(。

/// <summary>
/// Get multi-turn prompts card.
/// </summary>
/// <param name="result">Result to be dispalyed as prompts.</param>
/// <returns>IMessageActivity.</returns>
private static IMessageActivity GetQnAPromptsCardWithoutNoMatch(QueryResult result)
{
if (result == null)
{
throw new ArgumentNullException(nameof(result));
}
var chatActivity = Activity.CreateMessageActivity();
chatActivity.Text = result.Answer;
var buttonList = new List<CardAction>();
// Add all prompt
foreach (var prompt in result.Context.Prompts)
{
buttonList.Add(
new CardAction()
{
Value = prompt.DisplayText,
Type = "imBack",
Title = prompt.DisplayText,
});
}
var plCard = new HeroCard()
{
Buttons = buttonList
};
// Create the attachment.
var attachment = plCard.ToAttachment();
chatActivity.Attachments.Add(attachment);
return chatActivity;
}

我已经有一段时间没有看虚拟助手解决方案项目了,但我想说的是,请检查一下,确保他们没有多转QnA对话框,以验证这是否是问题所在。如果是,请查看多转QnA示例,查看如何编辑VA以包括处理多转提示的示例。

最新更新