你当前正在访问 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。
- 如果置信度很高,机器人可能会回答“这是最符合搜索的事件”或“我可以帮助你预留空间”,并提出顶级答案或开始提出后续问题。
- 如果置信度较低,机器人可能会响应“你是否正在寻找这些事件?”或“我可以帮助你完成以下事项:”并提供可能答案或选项的列表。
筛选主题
你可以设计知识机器人来帮助用户缩小搜索范围并优化搜索。 在聊天中,机器人可以提出澄清问题、演示选项和验证结果,以基本搜索无法实现的方式。
例如,事件机器人可以通过提出一系列问题来找出用户感兴趣的事件类型。 请考虑以下交换:
- 用户,“事件”。
- 机器人,“你对什么感兴趣? 音乐,喜剧,电影...“。
- 用户:“音乐”
- 机器人,“你感兴趣的音乐类型? 任何,摇滚/流行,嘻哈/说唱,...“。
- 用户“Rock/Pop”。
- 机器人,“你想选哪天去看摇滚/流行音乐会?” 星期五,星期六,星期日,任意。
- 用户,“星期六”。
- 机器人,“以下是星期六的摇滚/流行节目:”,找到的节目列表。
通过处理每个步骤中的用户输入并显示相关选项,机器人将指导用户了解他们正在查找的信息。 机器人提供该信息后,它还可以提供有关将来查找类似信息的更高效方法的指导。
顺便说一下,还可以键入“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 |