Azure 机器人服务的工作原理
在本单元中,你将了解如何使用 Bot Framework Composer 帮助你在交互式可视化设计器中设计机器人。 你将了解如何在 Bot Framework Composer 中扩展机器人的 AI 和语言功能。 你将基本了解如何在 Azure 机器人服务中创建机器人、扩展机器人功能,以及发布机器人。
机器人包的体系结构是什么?
Azure 机器人服务和 Bot Framework 支持完整的机器人创建过程。 支持的过程包括设计、构建、测试和发布任务。
机器人开发人员使用 Bot Framework Composer 来创建机器人包。此包包含机器人逻辑以及机器人集成和连接的详细信息,其中包括输入通道和身份验证。 机器人包还包含任何自定义机器人代码。 Azure 机器人服务托管着机器人包。 可以将 Azure 机器人视为附带一些额外功能的 Azure Web 应用,为机器人交互提供主要终结点。 通过机器人服务,用户可以与机器人交互。 同时,这项服务还可以管理外部通道和其他集成的传入和传出 REST 交互。
注意
此外,还可以使用 Bot Framework SDK 通过 Visual Studio 或 Visual Studio Code 来维护机器人包。
考虑要创建的机器人类型
在构建机器人前,需要确定要创建的机器人类型。 在做出决定时,请考虑以下问题:
你的机器人用来做什么? 确定要构建的机器人类型。 计划可帮助定义要实现的功能。
机器人要解决的问题是什么? 请明确此答案。 在构建机器人时,为客户解决问题是一个主要考虑因素。 还应考虑一些问题,例如,与替代体验相比,如何更好、更容易或更快地解决用户问题。
谁使用你的机器人? 在设计机器人时,完全可以认为用户需要使用它。 不同的客户需要不同的用户体验。 了解你的受众将有助于确定机器人设计的复杂程度。 考虑要为机器人实现哪些语言。
提示
在设计机器人时,确保出色的用户体验应该是重中之重。
你的机器人在哪里使用? 你必须确定你的机器人将在哪些平台上运行。 例如,设计为在移动设备上运行的机器人可能需要发送短信 (SMS) 等功能。
重要
发布体验因平台而异。
在 Bot Framework Composer 中开发核心机器人功能
可使用 Composer 来设计、构建、扩展和测试机器人。 Composer 是用于构建机器人的可视化编辑画布。 Azure 机器人服务的创建过程通常从这里开始。
可以使用 Composer 的可视化设计器,直观地开发机器人的核心功能。 你可以用其执行以下操作:
- 通过 QnA Maker 向机器人添加自然语言理解功能。 你可以使用语言理解智能服务 (LUIS)、QnA 或常见问题解答等功能。
- 使用语言生成模板为机器人创建文本和语音变体响应。
- 以多种语言构建机器人。
- 使用嵌入式 Web 聊天直接在 Composer 中测试机器人。
- 将机器人发布到 Azure 应用服务和 Azure Functions。
- 集成外部服务,如 LUIS 应用和 QnA Maker 知识库。
创建对话和对话流
对话控制机器人与其用户进行的对话。 对话框包含语言生成响应模板,其中定义了机器人响应以及有关机器人如何执行任务的说明。 例如,在餐馆预订晚餐或创建 Outlook 日历项目。
许多对话是线性的,其中包含一个简单的问题和响应序列。 但有些对话还包括高级对话逻辑。 此逻辑可能包括分支、循环和基于上下文的动态和自适应对话。 这些类型的对话通常使用外部数据,维护有状态对话数据,并在对话中造成必要的中断。
将技能和其他机器人添加到外部流
可以通过将 Composer 技能、NuGet 包和其他 Azure 机器人服务机器人导入到你的机器人来创建更复杂的对话流。 可创建一系列嵌套的机器人,以创建一组更具模块化和可重用的机器人功能。 可将这些较小的模块化组件合并成多个组合,为不同的父级机器人提供一组功能。 例如,你可能有一个机器人用于处理有关管理日历项的对话流,其中包含输入和响应,例如“下一次会议是什么时间?”或“是否需要会议室?”通过将机器人打包为一项技能,你可以轻松地将技能(和关联的日历对话处理功能)集成到你创建的任何其他机器人。
使用卡片、图像和按钮增强对话
可以使用若干可视化和交互式方法来增强机器人用户的对话。 使用卡片创建丰富的文本、图像和基于按钮的内容,提供比纯文本更具交互性的体验。 Composer 提供多种卡片类型,包括缩略图、登录、音频和视频。
通过 LUIS 和 QnA Maker 扩展语言理解和智能
LUIS 提供具有完整意图和实体管理系统的自然语言处理。 可集成以前创建的 LUIS 应用或在 Composer 中创建新应用,以向机器人添加强大的自然语言理解功能。
QnA Maker 是一项基于云的服务。 使用它从现有 FAQ 样式的文档和网站中提取问题和答案对。 然后,可以将该信息导入知识专家可以手动组织的知识库中。 可将机器人与 QnA 知识库集成。 通过这种集成,可以为任何给定的自然语言输入找到最适当的答案。
使用 Web 聊天测试机器人
可直接在 Composer 中通过 Web 聊天测试机器人的功能。 Web 聊天在本地机器人运行时中运行机器人,这意味着可以在本地开发计算机上测试机器人,而无需将其发布到 Azure。 Web 聊天提供了完整的调试、脚本记录和机器人状态检查功能,可测试机器人功能的各个方面。
通过 Bot Framework SDK 添加中间件并扩展机器人功能
若要编辑机器人源代码并扩展机器人功能,可以使用 Visual Studio、Visual Studio Code 或你选择的具有 Bot Framework SDK 的受支持 IDE。 将机器人打包为 NuGet 包并发布。 为了实现轻松集成,可将这些包导入到 Composer。 在整个机器人开发生命周期中,可以在 Composer 与 Bot Framework SDK 之间无缝移动。 这种移动可确保你始终使用最有效的工具来完成任何开发任务。
将机器人发布到 Azure
Azure 机器人服务在 Azure 中托管机器人功能。 直接从 Composer 接口发布机器人,从而在 Composer 内创建端到端开发体验。
Azure 机器人服务在 Azure Web 应用资源中托管机器人。 此资源包含用于连接到外部资源的代码、逻辑和基本 HTTP REST 终结点。 Azure 机器人服务还提供现成的机器人服务通道。 机器人服务通道提供了一个适配器层,可使机器人交互满足其他聊天服务协议,如 Facebook、Slack、Teams、电话服务等。
从 Composer 发布时,发布过程还可以创建或导入从属的 Azure 资源。 这些资源包括 LUIS、QnA Maker、Azure Cosmos DB、Application Insights 和 Blob 存储。