Azure虚拟助手提示按钮

时间:2020-04-23 10:12:28

标签: c# azure azure-language-understanding qnamaker azure-deployment

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

在qnamaker网站上,它成功执行了多轮跟进按钮,但在机器人模拟器上却没有。

我想知道这是否是由于没有首先设置和部署虚拟助手引起的。因为创建虚拟助手时默认贺卡甚至无法显示。

我是否缺少一些代码来显示这些跟进提示按钮,还是因为Luis未连接且部署未设置而不可能吗?如果我缺少一些代码,可以有人指出我正确的方向吗?

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

谢谢

1 个答案:

答案 0 :(得分:0)

多转功能是可以在门户qnamaker.ai上启用的功能,但是您的机器人仍然负责处理发送带有附有按钮的卡的消息。

  • 因此,在门户中启用多转会允许您对generateanswer API的调用返回包含“ context”值的“ prompts”对象的响应。
  • 第2步是确保您的助手具有创建卡的代码。您需要在何时生成卡片时进行处理

您可以在botbuilder samples仓库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;
        }

我已经有一段时间没有看过Virtual Assistant解决方案项目了,但是我要说一下以确保他们没有多轮QnA对话框来验证这是问题所在,如果是的话,请查看多轮回qna示例,以获取一个示例,说明如何编辑VA以包括处理多轮转提示。