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

设计知识机器人

适用于: SDK v4

可以设计几乎涵盖任何主题的知识机器人。 无论知识机器人的设计用例如何,其基本目标始终相同:查找并返回用户通过搜索数据主体请求的信息。

例如,一个知识机器人可能会回答有关事件的问题,例如“此会议中有哪些机器人事件?”、“下一个Reggae节目什么时候?”或“谁是 Tame Impala?”另一个可能回答与 IT 相关的问题,例如“如何更新我的作系统?”或“我在哪里重置密码?” 然而,另一个可能回答有关联系人的问题,如“谁是 John Doe?” 或 “Jane Doe 的电子邮件地址是什么?”

本文介绍可以添加到机器人的一些 AI 功能,例如让用户搜索信息、提问或与信息交互。 要了解 Bot Framework SDK 支持哪些 Azure AI 服务功能,请参阅自然语言理解

小窍门

Azure AI 服务整合了不断发展的技术。 本文介绍较新的和较旧的功能。

关于置信度分数

某些功能使机器人能够从知识库或语言模型返回信息,以匹配用户问题或查询。

例如,如果用户向音乐知识机器人询问有关“impala”的信息(而不是乐队的全名“Tame Impala”),机器人可以使用最有可能与该输入相关的信息进行响应。 同样,语言理解功能可以使用语言模型从用户输入中提取可能 意向 。 例如,如果用户要求旅行社机器人“预订房间三天”,机器人可能会提取“保留房间”意向,然后收集详细信息。

搜索和意向识别都返回置信度分数,指示引擎具有特定结果正确置信度级别。 根据答案的整体置信度,使用置信度分数对结果进行排序或做出不同的响应。

注释

将不同的服务或功能类型组合在一起时,使用每个工具测试输入,以确定每个模型的阈值分数。 这些服务和功能使用不同的评分条件,因此这些工具生成的分数不能直接进行比较。 例如,QnA Maker 服务使用置信度范围为 0 到 100,而问答功能使用的范围为 0.0 到 1.0。

  • 如果置信度很高,机器人可能会回答“这是最符合搜索的事件”或“我可以帮助你预留空间”,并提出顶级答案或开始提出后续问题。
  • 如果置信度较低,机器人可能会响应“你是否正在寻找这些事件?”或“我可以帮助你完成以下事项:”并提供可能答案或选项的列表。

筛选主题

你可以设计知识机器人来帮助用户缩小搜索范围并优化搜索。 在聊天中,机器人可以提出澄清问题、演示选项和验证结果,以基本搜索无法实现的方式。

例如,事件机器人可以通过提出一系列问题来找出用户感兴趣的事件类型。 请考虑以下交换:

  1. 用户,“事件”。
  2. 机器人,“你对什么感兴趣? 音乐,喜剧,电影...“。
  3. 用户:“音乐”
  4. 机器人,“你感兴趣的音乐类型? 任何,摇滚/流行,嘻哈/说唱,...“。
  5. 用户“Rock/Pop”。
  6. 机器人,“你想选哪天去看摇滚/流行音乐会?” 星期五,星期六,星期日,任意。
  7. 用户,“星期六”。
  8. 机器人,“以下是星期六的摇滚/流行节目:”,找到的节目列表。

通过处理每个步骤中的用户输入并显示相关选项,机器人将指导用户了解他们正在查找的信息。 机器人提供该信息后,它还可以提供有关将来查找类似信息的更高效方法的指导。

顺便说一下,还可以键入“Rock friday”或按名称搜索事件。

有关相关 Azure 服务的信息,请参阅自然语言理解概念文章中的搜索

回答问题

你可以设计知识机器人来回答常见问题。 支持问答功能的服务通常允许你或机器人:

  • 管理和训练知识库。
  • 将信息导入知识库,例如从数据文件或网页。
  • 猜猜哪个答案最能映射到用户的问题。
  • 询问用户跟进问题,以帮助查找要查找的答案。

有关相关 Azure 服务的信息,请参阅自然语言理解概念文章中的问题和解答

解读意图

某些知识机器人需要自然语言处理(NLP)功能,以便他们可以分析用户的消息以确定用户的意图和其他重要信息。

例如,在音乐播放机器人中,用户可能会消息“Play Reggae”、“Play Bob Marley”或“播放一爱”。 可以训练语言模型,把每条消息映射到意图“playMusic”,而无需为每个艺术家、流派和歌曲名称进行训练。

语言模型可能不明白要播放的内容、 实体是流派、艺术家还是歌曲。 但是,机器人可以使用此信息搜索该实体,并从那里继续。

有关相关 Azure 服务的信息,请参阅自然语言理解概念文章中的语言理解

集成多个功能

每个 NLP 功能都是其自己的强大工具。 但是,机器人可以将这些功能和其他功能组合在一起,为用户提供更流畅和自然的体验。 使用置信度分数来确定哪个功能最适合映射到用户的消息,如果最佳匹配不明确,请询问后续问题。

例如,此类机器人可以让用户:

  • 找到他们有兴趣参加的节目。
  • 获取有关艺术家、场地和活动的信息。
  • 购买门票或注册以接收未来活动的通知。

有关相关 Azure 服务的信息,请参阅自然语言理解概念文章中的多个功能一起使用

浏览示例

Bot Framework 示例存储库包含一些演示语言理解功能的示例机器人:

示例 示例名称 DESCRIPTION
11 QnA Maker (简单) 使用 QnA Maker,回答问题以一系列 单轮的 对话形式进行。
13 核心机器人 使用 LUIS 解释用户的意向。
14 NLP 与调度 使用 Orchestrator 将用户消息调度到 LUIS 或 QnA Maker。
49 QnA Maker (高级) 在 QnA Maker 中使用多轮次和主动学习功能回答问题。

注释

Azure QnA Maker 将于 2025 年 3 月 31 日停用。 从 2022 年 10 月 1 日开始,你将无法创建新的 QnA Maker 资源或知识库。 问答功能的较新版本现已作为 Azure AI 语言的一部分提供。

自定义问答是 Azure 语言认知服务的一项功能,是 QnA Maker 服务的更新版本。 有关 Bot Framework SDK 中的问答支持的详细信息,请参阅自然语言理解

注释

语言理解 (LUIS) 将于 2025 年 10 月 1 日停用。 从 2023 年 4 月 1 日开始,将无法创建新的 LUIS 资源。 语言理解的较新版本现已作为 Azure AI 语言的一部分提供。

对话语言理解(CLU)是 Azure AI 语言的一项功能,是 LUIS 的更新版本。 有关 Bot Framework SDK 中的语言理解支持的详细信息,请参阅自然语言理解

适用于 .NET 的 Azure SDK用于 Python 的 Azure SDK 存储库也有一些示例:

功能 / 特点 自述文件示例
问答 C#Python
会话语言理解,编排工作流 C#Python