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

设计知识型机器人

适用于:SDK v4

可以设计几乎涵盖任何主题的知识机器人。 无论要设计哪一种知识型机器人,其基本目标都是一样的:通过搜索数据正文来查找并返回用户请求的信息。

例如,一个知识机器人可能会回答有关事件的问题,例如“这个会议上有什么机器人活动?”,“下一个雷鬼表演是什么时候?”或“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. 用户,“摇滚/流行”。
  6. 机器人,“你希望在哪一天看到摇滚/流行? 星期五、星期六、星期日、任何”。
  7. 用户,“星期六”。
  8. 机器人,“以下是星期六的摇滚/流行节目:”,并提供找到的节目列表。

通过在每个步骤中处理用户输入的内容并提供相关选项,机器人引导用户获得其正在查找的信息。 机器人提供了该信息后,它还能够提供相关指导来帮助用户在未来以更有效的方式找到类似信息。

顺便说一下,还可以键入“摇滚 星期五”或按名称搜索事件。

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

若要回答问题

你可以设计知识机器人来回答常见问题。 支持问答功能的服务通常使你或机器人能够执行以下操作:

  • 管理和训练知识库。
  • 将信息导入知识库,例如从数据文件或网页导入。
  • 猜出哪个回答最适合映射到用户的问题。
  • 向用户提出跟进问题,以帮助用户找到他们想要的答案。

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

若要解读意向

一些知识型机器人需具备自然语言处理 (NLP) 功能,这样才能分析用户的消息以确定用户的意向和其他重要信息。

例如,在音乐播放机器人中,用户可能会发送消息“播放雷鬼音乐”、“播放鲍勃·马利”或“播放 One Love”。 可以训练语言模型,将每条消息映射到意向“playMusic”,而无需使用每个艺术家、流派和歌曲名称进行训练。

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

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

若要集成多个功能

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

例如,此类机器人使用户能够:

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

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

查看示例

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

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

注意

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

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

注意

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

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

Azure SDK for .NETAzure SDK for Python 存储库也具有一些示例:

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