我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

你好,哈布尔! 今天,我们将向您展示如何使用 Azure 解决通常需要人工干预的问题。 客服人员花费大量时间回答相同的问题、处理电话和短信。 聊天机器人自动化沟通和识别,减轻人们的负担。 机器人还用于 Azure DevOps,例如,它们允许直接从 Slack 或 Microsoft Teams 批准版本、管理构建(查看、启动和停止)。 从本质上讲,聊天机器人有点让人想起 CLI,只是交互式的,并且允许开发人员留在聊天讨论的上下文中。

在本文中,我们将讨论用于创建聊天机器人的工具,展示如何使用认知服务改进它们,并描述如何使用 Azure 中的现成服务加快开发速度。

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

聊天机器人和认知服务:有何相似之处和不同之处?

要在 Microsoft Azure 中创建机器人,请使用 Azure 机器人服务和机器人框架。 它们共同代表了一套用于构建、测试、部署和管理机器人的软件,使您可以从现成的模块创建具有语音支持、自然语言识别和其他功能的简单和高级通信系统。

假设您需要实现一个基于公司问答服务的简单机器人,或者相反,创建一个具有复杂的分支通信系统的功能机器人。 为此,您可以使用许多工具,分为三组: 

  1. 用于快速开发对话界面(机器人)的服务。
  2. 适用于不同用例(模式识别、语音识别、知识库和搜索)的现成认知人工智能服务。
  3. 用于创建和训练人工智能模型的服务。

通常,人们直观地混淆“机器人”和“认知服务”,因为这两个概念都基于通信原理,而机器人和服务的用例涉及对话。 但聊天机器人使用关键字和触发器,而认知服务则处理通常由人类处理的任意请求: 

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

认知服务是与用户通信的另一种方式,有助于将任意请求转换为清晰的命令并将其传递给机器人。 

因此,聊天机器人是处理请求的应用程序,认知服务是对单独启动的请求进行智能分析的工具,但聊天机器人可以访问这些请求,从而变得“智能”。 

创建聊天机器人

Azure 中机器人的推荐设计图如下: 

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

要在 Azure 中设计和开发机器人,请使用 机器人框架。 可在 GitHub 上获取 机器人的例子,框架的功能发生变化,因此有必要考虑机器人中使用的 SDK 版本。

该框架提供了多种创建机器人的选项:使用经典代码、命令行工具或流程图。 最后一个选项可视化对话框;为此您可以使用管理器 Bot 框架编辑器。 它基于 Bot Framework SDK 构建,作为跨学科团队可以用来创建机器人的可视化开发工具。

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

Bot Framework Composer 允许您使用块来创建机器人将使用的对话结构。 此外,您可以创建触发器,即机器人在对话期间将做出反应的关键字。 例如,“操作员”、“盗窃”或“停止”和“够了”等词语。

在 Bot Framework Composer 中,您可以使用以下命令创建复杂的对话系统 自适应对话框。 对话可以同时使用认知服务和事件卡(自适应卡):

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

创建后,您可以在订阅中部署聊天机器人,自动准备的脚本将创建所有必要的资源:认知服务、应用程序计划、应用程序洞察、数据库等。

QnA制造商

要基于公司问答数据库创建简单的机器人,您可以使用 QnA Maker 认知服务。 它作为一个简单的 Web 向导实现,允许您输入企业知识库的链接(常见问题解答 URL)或使用 *.doc 或 *.pdf 格式的文档数据库作为基础。 创建索引后,机器人将自动为用户的问题选择最合适的答案。

使用 QnAMaker,您还可以通过自动创建按钮来创建澄清问题链,用元数据补充知识库,并在使用过程中进一步培训服务。

该服务可以用作仅实现这一功能的聊天机器人,也可以用作根据请求使用其他 AI 服务或 Bot Framework 元素的复杂聊天机器人的一部分。

与其他认知服务合作

Azure 平台上有许多不同的认知服务。 从技术上讲,这些是可以从代码调用的独立 Web 服务。 作为响应,服务发送特定格式的 json,该格式可以在聊天机器人中使用。

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务
聊天机器人最常见的用途是:

  1. 文字识别。
  2. 开发者自定义视觉服务图像类别识别(生产案例:识别员工是否佩戴安全帽、护目镜、口罩)。
  3. 人脸识别(一个很好的用例是检查接受调查的人是否发布了自己的脸,或者说,狗的照片或不同性别的人的照片)。
  4. 语音识别。
  5. 图像分析。
  6. 翻译(我们都记得Skype的同声翻译造成了多少噪音)。
  7. 拼写检查和纠正错误的建议。

路易

另外,要创建机器人,您可能需要 路易 (语言理解智能服务)。 服务目标:

  • 确定用户的陈述是否有意义以及机器人的响应是否必要。
  • 减少将用户语音(文本)转录为机器人可以理解的命令的工作。
  • 预测真实的用户目标/意图并从对话中的短语中提取关键见解。
  • 允许开发人员仅使用几个含义识别示例以及随后在操作过程中对机器人进行额外培训来启动机器人。
  • 使开发人员能够使用可视化来评估命令转录的质量。
  • 协助逐步改进真实目标识别。

事实上,LUIS的主要目标是以一定的概率理解用户的意思,并将自然的请求转​​换为和谐的命令。 为了识别查询值,LUIS 使用一组意图(含义、意图)和实体(由开发人员预先配置,或者采用和预先形成的“域”——Microsoft 准备的一些现成的标准短语库)。 

一个简单的例子:您有一个机器人可以为您提供天气预报。 对他来说,意图是将自然请求转化为“行动”——天气预报请求,实体将是时间和地点。 下图展示了 CheckWeather 意图如何为此类机器人发挥作用。

意图
本质
自然查询示例

查看天气
{"type": "位置", "entity": "莫斯科"}
{“类型”:“builtin.datetimeV2.date”,“实体”:“未来”,“分辨率”:“2020-05-30”}
莫斯科 明天的天气怎么样?

查看天气
{ "type": "date_range", "entity": "这个周末" }
显示本周末的天气预报

要结合 QnA Maker 和 LUIS,您可以使用 调度员

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

当您使用 QnA Maker 并收到用户的请求时,系统会确定 QnA 的答案与请求匹配的概率百分比。 如果概率较高,则只需从企业知识库中向用户提供答案;如果概率较低,则可以将请求发送到 LUIS 进行澄清。 使用Dispatcher可以让你不用编程这个逻辑,而是自动判断分离请求的这条边并快速分发它们。

测试并发布机器人

使用另一个本地应用程序进行测试, Bot框架模拟器。 使用模拟器,您可以与机器人通信并检查它发送和接收的消息。 模拟器显示消息,就像它们出现在网络聊天界面中一样,并在向机器人发送消息时记录 JSON 请求和响应。

该演示中提供了使用模拟器的示例,展示了为 BMW 创建虚拟助手的过程。 该视频还讨论了用于创建聊天机器人的新加速器 - 模板:

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务
https://youtu.be/u7Gql-ClcVA?t=564

您还可以在创建聊天机器人时使用模板。 
模板允许您不必重新编写标准机器人功能,而是添加现成的代码作为“技能”。 一个例子是使用日历、进行约会等。现成技能代码 发表 在 github 上。

测试成功,机器人已准备就绪,现在需要发布并连接通道。 发布是使用Azure进行的,并且可以使用Messenger或社交网络作为渠道。 如果您没有所需的数据录入渠道,可以在GitHab上相应的社区中搜索。 

此外,要创建一个成熟的聊天机器人作为与用户和认知服务进行通信的接口,您当然需要其他 Azure 服务,例如数据库、无服务器(Azure Functions)以及 LogicApp 服务,并且可能还需要,事件网格。

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

评估与分析

要评估用户交互,可以使用 Azure Bot 服务的内置分析和特殊的 Application Insights 服务。

因此,您可以根据以下条件收集信息:

  • 在选定的时间段内有多少用户通过各种渠道访问机器人。
  • 有多少用户发送了一封消息后又返回并发送了另一封消息。
  • 在指定的时间间隔内使用每个通道发送和接收的操作数。

使用 Application Insights,您可以监视 Azure 中的任何应用程序,特别是聊天机器人,获取有关用户行为、负载和聊天机器人反应的其他数据。 应该注意的是,Application Insights 服务在 Azure 门户中有自己的界面。

您还可以使用通过此服务收集的数据在 PowerBI 中创建其他可视化和分析报告。 可以采用 PowerBI 的此类报告和模板的示例 这里.

我们使用 Azure 服务加速开发:我们使用该平台创建聊天机器人和认知服务

感谢大家的关注! 在这篇文章中我们使用了 материал 摘自 Microsoft Azure 架构师 Anna Fenyushina 的网络研讨会“当人们没有时间时。 如何 100% 使用聊天机器人和认知服务来自动化日常流程”,我们清楚地展示了 Azure 中的聊天机器人以及它们的使用场景,并且还演示了如何在 15 分钟内在 QnA Maker 中创建机器人以及如何查询结构在 LUIS 中解密。 

我们举办此网络研讨会是开发者 Dev Bootcamp 在线马拉松的一部分。 它是关于使用自动化工具和现成的预配置 Azure 模块加速开发并减轻公司员工的一些日常工作量的产品。 马拉松中包含的其他网络研讨会的录音可通过以下链接获取:

来源: habr.com

添加评论