你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是 Bot Framework SDK?

适用于:SDK v4

Microsoft Bot Framework 和 Azure AI 机器人服务是库、工具和服务的集合,可用于生成、测试、部署和管理智能机器人。 Bot Framework 包含用于生成机器人和连接到 AI 服务的模块化可扩展 SDK。 借助此框架,开发人员可以创建使用语音、理解自然语言、回答问题以及具有其他功能的机器人。

提示

有关用于生成机器人的 Microsoft 产品和服务的列表、它们支持的对象以及每个产品的简要说明,请参阅为用例选择正确的聊天机器人解决方案

什么是机器人?

机器人提供的体验让你感觉不太像在使用计算机,而更像是在与人或者与智能机器人打交道。 可使用机器人将简单的重复性任务(例如预订晚餐或收集个人信息)转移到可能不再需要直接人工干预的自动化系统。 用户使用文本、交互卡和语音与机器人聊天。 机器人交互可以是快速的问答,也可以是以智能方式提供服务访问权限的参与式会话。

可将机器人视为具有对话接口的 Web 应用程序。 用户通过 Facebook、Slack、Microsoft Teams 或自定义应用程序等通道连接到机器人。

  • 根据机器人的配置方式及其在通道中注册的方式,交互的方式可以是文本或语音,也可以是图像和视频。
  • 机器人处理用户的输入,以解读用户的要求或所说的内容。
  • 机器人评估输入并执行相关任务,例如让用户提供其他信息,或代表用户访问服务。
  • 机器人会响应用户,让他们知道机器人正在执行的操作或已执行的操作。

A remote bot interacts with a user on a device via text, speech, images, or video.

机器人通常作为 Web 应用程序实现,托管在 Azure 中,并使用 API 发送和接收消息。 机器人中的内容差异很大,具体取决于机器人的类型和其要实现的目的。 机器人可以接收消息并将其回显给用户,几乎没有涉及代码。 更复杂的机器人可以依赖各种工具和服务在各种平台上提供更丰富的体验。

机器人可以完成其他类型的软件可以完成的任务 - 读写文件、使用数据库和 API,以及执行常规的计算任务。 使机器人不同于其他软件的是,它们使用人与人之间的通信机制。

Azure AI 机器人服务 和 Bot Framework 包括:

  • 用于使用 C#、JavaScript、Python 或 Java 语言开发机器人的 Bot Framework SDK。 (Java SDK 已停用,最终长期支持将于 2023 年 11 月结束。
  • 对端到端机器人开发提供帮助的 CLI 工具。
  • 机器人连接器服务,该服务在机器人和通道之间中继消息和事件。
  • 用于机器人管理和配置的 Azure 资源。

另外,机器人可能使用其他 Azure 服务,例如:

  • 用于生成智能应用程序的 Azure AI 服务
  • 用于云存储解决方案的 Azure 存储

如何生成机器人

Azure AI 机器人服务和 Microsoft Bot Framework 提供一组集成的工具和服务,可帮助你在机器人生命周期的所有阶段设计和生成机器人。 适用于 C#、Java、TypeScript 和 Python 的 SDK。 请选择最喜欢的开发环境或命令行工具以创建机器人。

Illustration of the steps in the bot life cycle.

计划

与任何类型的软件一样,若要创建成功的机器人,必须全面了解目标、流程和用户需求。 可以创建简单的机器人,也可以让机器人包含较复杂的功能,例如语音、自然语言理解和问题解答。

在编写代码之前,请参阅设计指导,了解最佳做法并确定机器人的需求。

构建

通常,机器人是 Azure 中托管的 Web 服务。 在 Azure 中,可以将机器人配置为从各种通道发送和接收消息和事件。 可在任意数目的环境和语言中创建机器人。 可以创建用于本地开发的机器人

借助 Azure AI 机器人服务和 Bot Framework,可以使用其他库和服务来扩展机器人的功能。 下表介绍了 SDK 支持的一些功能。

功能 说明 详细信息
内存和存储 保留用户和对话状态 管理状态
自然语言理解 从用户输入中解读和提取信息 语言理解
资讯卡 合并文本和其他媒体,例如图像、音频、视频和按钮 如何添加媒体和卡

命令行工具,可帮助你创建、管理和测试机器人资产。 有关详细信息,请参阅 Azure CLIBot Framework 工具

有关完整的代码示例,请参阅 Bot Framework 示例存储库。 这些示例演示了 SDK 的许多功能。

测试

机器人是复杂的应用,有大量不同的协同工作的部件。 就像其他复杂应用一样,这可能会导致出现一些需要关注的 Bug,或者会导致机器人的行为异常。 发布前,请先测试机器人。 在发布机器人供用户使用之前,我们提供了多种方式来测试机器人:

  • 使用 Bot Framework Emulator 在本地测试机器人。 Bot Framework Emulator 是独立的应用,不仅提供聊天界面,而且提供调试和询问工具来帮助理解机器人的工作方式和工作原理。 Emulator 可以在本地与正在开发的机器人应用程序一起运行。

  • Web 上测试机器人。 通过 Azure 门户进行配置以后,机器人也可通过网上聊天界面进行访问。 测试者和其他无法直接访问运行代码的人员可以通过网页聊天界面访问机器人。

  • 使用当前 Bot Framework SDK 对机器人进行单元测试

发布

做好在网上发布机器人的准备以后,请将机器人部署到 Azure 或你自己的 Web 服务或数据中心。 若要将机器人嵌入站点或聊天通道,第一步是获取公共 Internet 上的地址。

连接

将机器人连接到 Facebook、Messenger、Slack、Microsoft Teams、Telegram、通过 Twilio 实现的短信和 Cortana 等通道。 在通过所有这些不同的平台发送和接收消息的过程中,Bot Framework 完成大多数必需的工作 - 不管连接到的通道的数目和类型如何,机器人应用程序都会收到统一且规范化的消息流。 有关如何添加通道的信息,请参阅通道主题。

评估

使用 Azure 门户中收集的数据确定改善机器人功能和性能的机会。 可以获得服务级和检测数据,如流量、延迟和集成。 此外,Analytics 还提供有关用户、消息和通道数据的聊天级报告。 有关详细信息,请参阅如何收集分析数据

后续步骤