我已经设置了Microsoft azure虚拟助手,但是没有连接到Luis并且尚未部署。
在qnamaker网站上,它成功执行了多轮跟进按钮,但在机器人模拟器上却没有。
我想知道这是否是由于没有首先设置和部署虚拟助手引起的。因为创建虚拟助手时默认贺卡甚至无法显示。
我是否缺少一些代码来显示这些跟进提示按钮,还是因为Luis未连接且部署未设置而不可能吗?如果我缺少一些代码,可以有人指出我正确的方向吗?
注意:这是虚拟助手,而不是机器人。它们是相似的,但针对机器人的教程在虚拟助手上不起作用。我正在使用最新的虚拟助手模板。我做了很多研究,但无法解决。我已经花了两天了。
谢谢
答案 0 :(得分:0)
多转功能是可以在门户qnamaker.ai上启用的功能,但是您的机器人仍然负责处理发送带有附有按钮的卡的消息。
generateanswer
API的调用返回包含“ context
”值的“ prompts
”对象的响应。您可以在botbuilder samples
仓库70.qnamaker-multiturn-sample
中找到一个机器人实施多回合提示的示例。用于构建卡的代码段,我将在下面发布,但是我建议您直接转到示例以查看其周围的逻辑,以了解何时实际使用卡发送消息(他们可以仅在存在context
和prompt
的情况下通过发送卡片进行发送-您可以根据自己的机器人需要对其进行自定义)。
/// <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;
}
我已经有一段时间没有看过Virtual Assistant解决方案项目了,但是我要说一下以确保他们没有多轮QnA对话框来验证这是问题所在,如果是的话,请查看多轮回qna示例,以获取一个示例,说明如何编辑VA以包括处理多轮转提示。