c# - Azure 虚拟助手提示按钮

标签 c# azure azure-language-understanding azure-qna-maker azure-deployment

我已设置 Microsoft azure 虚拟助手,但未连接到 Luis,且尚未部署。

在 qnamaker 网站中,它成功地执行了多轮后续按钮,但在机器人模拟器上却失败了。

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

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

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

谢谢

最佳答案

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

  • 因此,在门户中启用多轮将允许您调用generateanswer API,以返回带有“context”对象的响应,该对象包含提示 值。
  • 第 2 步是确保您的助手拥有创建卡片的代码。当你想要生成卡片时你必须处理

您可以在botbuilder示例存储库中找到实现多轮提示的机器人示例,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 以包含处理多轮提示的示例。

关于c# - Azure 虚拟助手提示按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61384642/

相关文章:

c# - 将机器人框架 Luis 与 QnA 作为 Intent 集成,然后在进入 QnA 后重新询问用户

c# - 重构该代码... Controls.Find 方法

c# - .NET 中 AJAX 和 ViewState 的行为不一致

azure_rm Ansible 插件无法解析动态 list

azure - 将某些 API 请求从一个 Web 应用程序重定向到另一个 Web 应用程序

python - 将脚本从 Azure 虚拟机移动到 Azure Function App

使用 Luis 暂存版本的 Azure 机器人

botframework - 短语列表和列表实体之间的区别?

c# - IntPtr.operator +(IntPtr,int)无法调用运算符或访问器

c# - 将此 C# 字典转换为 VB.NET