自然语言理解
适用于:SDK v4
机器人可以使用不同的对话方式,从结构化和引导式到自由格式和开放式。 根据用户所说的内容,机器人需要决定下一步在对话流中执行的操作。 Azure AI 服务包括可帮助完成此任务的功能。 这些功能可帮助机器人搜索信息、提问或解读用户的意图。
用户与机器人之间的交互通常是自由格式,机器人需要自然地根据上下文理解语言。 在开放式对话中,用户回复可能有很多,机器人可以提供或多或少的结构或指导。 以下表格说明了引导式问题和开放式问题之间的差异。
引导式 | 开放式问题 |
---|---|
我是差旅智能机器人。 请选择以下选项之一:查找航班、查找酒店、查找租赁汽车。 | 我可以帮助你预订行程。 你希望做什么? |
还有其他需要吗? 单击“是”或“否”。 | 还有其他需要吗? |
Azure AI 服务提供构建智能应用、网站和机器人的功能。 为机器人添加这些功能可以让机器人对开放式用户输入做出更恰当的回应。
本文介绍了 Bot Framework SDK 对 Azure AI 服务中某些功能的支持。
- 有关如何在机器人中设计这些功能的提示,请参阅设计知识机器人。
- 有关 Azure AI 服务的详细信息,请参阅 Azure AI 服务文档。
通用指南
Azure AI 服务整合了不断发展的技术。 Azure AI 语言集成了以前作为单独服务实现的各种功能。 本文同时介绍较新的和较旧的功能和服务,以及查找每种功能和服务的详细信息的位置。
场景 | 指南 |
---|---|
机器人开发新手 | 考虑使用 Microsoft Copilot Studio,它专为支持成员拥有不同技能和学科的团队而设计。 有关详细信息,请参阅 Copilot Studio 和启用高级 AI 功能。 |
现有 Bot Framework SDK 机器人的新语言项目 | 请考虑使用 Azure AI 语言服务的功能,例如对话语言理解 (CLU) 和回答问题。 |
具有现有语言项目的现有机器人 | 语言项目将继续运行,但请考虑迁移到 Azure AI 语言。 有关详细信息,请参阅本文后面的迁移现有语言项目部分。 |
语言理解
使用自然语言理解功能,你可以生成自定义自然语言理解模型,以预测用户消息的总体意图并从中提取重要信息。
服务或功能 | 说明 |
---|---|
对话语言理解 (CLU) | Azure AI 语言服务的一项功能。 |
语言理解 (LUIS) | 一项 Azure AI 服务。 (CLU 是 LUIS 的更新版本。) LUIS 将于 2025 年 10 月 1 日停用。 |
对话语言理解 (CLU)
使用对话语言理解 (CLU),你可以生成自定义自然语言理解模型,以预测传入语句的总体意图并从中提取重要信息。 CLU 仅提供智能来了解客户端应用程序的输入文本,它不执行任何操作。
若要在机器人中使用 CLU,创建语言资源和对话项目,训练和部署语言模型,然后在机器人中实现“遥测识别器”,用于将请求转发到 CLU API。
有关详细信息,请参阅:
- 什么是对话语言理解?
- C#/.NET 或 JavaScript/node.js 的“遥测识别器”接口参考
- 适用于 .NET 的 Azure 认知语言服务对话客户端库
语言理解 (LUIS)
注意
语言理解 (LUIS) 将于 2025 年 10 月 1 日停用。 从 2023 年 4 月 1 日开始,将无法创建新的 LUIS 资源。
LUIS 可在用户对话的自然语言文本中应用自定义机器学习智能,以便预测整体含义并提炼出相关的详细信息。
若要在机器人中使用 LUIS,请创建、训练和发布 LUIS 应用,然后将“LUIS 识别器”添加到机器人。
有关详细信息,请参阅:
问题与解答
使用问答功能可以生成知识库来回答用户问题。 知识库表示半结构化内容,例如在常见问题解答、手册和文档中找到的内容。
服务或功能 | 说明 |
---|---|
问答 | Azure AI 语言服务的一项功能。 |
QnA Maker | 一项 Azure AI 服务。 (问题解答是 QnA Maker 的更新版本。) Azure AI QnA Maker 将于 2025 年 3 月 31 日停用。 |
问答
问答提供基于云的自然语言处理 (NLP),让你可以基于数据创建自然对话层。 使用该服务可以通过自定义信息知识库,找到针对任何输入的最恰当回答。
若要在机器人中使用问题解答,请创建和部署问题解答项目,然后在机器人中实现“QnA Maker 客户端”,该客户端将请求转发到问题解答 API。
有关详细信息,请参阅:
- 使用问题解答回答问题
- 什么是问题解答?
- 适用于 C#/.NET 或 JavaScript/node.js 的“QnA Maker 客户端”接口参考
- 适用于 .NET 的 Azure 认知语言服务问题解答客户端库
QnA Maker
注意
Azure QnA Maker 将于 2025 年 3 月 31 日停用。 从 2022 年 10 月 1 日开始,你将无法创建新的 QnA Maker 资源或知识库。
QnA Maker 内置有从现有常见问题解答站点中提取问题和答案的功能,它还能让你手动配置自己的问题和答案自定义列表。 QnA Maker 能够处理自然语言,由此甚至可提供用词与预期略有不同的问题的答案。 但是,它没有语义上的语言理解能力,因此,举例来说,它无法确定小狗是一种狗。
若要在机器人中使用 QnA Maker,请创建 QnA Maker 服务,发布知识库,并将“QnA Maker”对象添加到机器人。
有关详细信息,请参阅:
Search
Azure 认知搜索可帮助机器人为用户提供丰富的搜索体验,包括对信息进行分面和筛选的功能。
- 可以使用 Azure 认知搜索作为 Azure AI 语言中的一项功能。
- 可以直接使用 Azure 认知搜索服务。
Azure 认知搜索
可以使用 Azure 认知搜索创建一个高效的索引,以便搜索、分面和筛选数据存储。
- 有关如何在 Azure AI 语言中配置认知搜索,请参阅配置已启用自定义问题解答的资源。
- 有关认知搜索服务的信息,请参阅什么是 Azure 认知搜索?。
结合使用多个功能
若要构建能够理解多个对话主题的多用途机器人,可以先针对每个功能单独提供支持,然后将它们集成在一起。 机器人可能合并多个功能的方案包括:
- 机器人提供一组功能,其中每个功能都有自己的语言模型。
- 机器人搜索多个知识库,以查找用户问题的答案。
- 机器人集成不同类型的功能,例如语言理解、回答问题和搜索。
该表介绍了集成多个功能的不同方式。
服务或功能 | 说明 |
---|---|
业务流程工作流 | Azure AI 语言服务的一项功能,可用于结合使用多个问题解答、CLU 和 LUIS 项目。 |
Bot Framework 业务流程协调程序 | 仅意图识别引擎,可用于确定哪个 LUIS 模型或 QnA Maker 知识库可以最好地处理给定的消息。 |
自定义 | 可以实现自己的逻辑来决定如何处理用户的请求。 |
使用编排工作流
编排工作流应用机器学习智能来使你能够构建编排模型,以连接对话语言理解 (CLU) 组件、问题解答项目和 LUIS 应用程序。
若要在机器人中使用编排工作流,请创建编排工作流项目、生成架构、训练和部署模型,然后查询模型 API 以获取意图预测。
有关详细信息,请参阅:
业务流程协调程序
注意
Azure QnA Maker 将于 2025 年 3 月 31 日停用。 从 2022 年 10 月 1 日开始,你将无法创建新的 QnA Maker 资源或知识库。
语言理解(LUIS)将于2025年10月1日停用。 从 2023 年 4 月 1 日开始,将无法创建新的 LUIS 资源。
Bot Framework Orchestrator 是仅限意图的识别引擎。 Bot Framework CLI 包括用于从 QnA Maker 知识库和 LUIS 语言模型的集合中为 Orchestrator 生成语言模型的工具。 然后,机器人可以使用 Orchestrator 来确定哪些服务可以最好地响应用户的输入。
Bot Framework SDK 为 LUIS 和 QnA Maker 提供了内置支持。 这样,便可以使用 LUIS 和 QnA Maker 以最少的配置触发对话或自动回答问题。
有关详细信息,请参阅将多个 LUIS 和 QnA 模型与 Orchestrator 配合使用。
自定义逻辑
实现自己的逻辑有两种主要方法:
- 对于每条消息,请调用机器人支持的所有相关服务。 使用具有最佳置信度分数的服务的结果。 如果最佳分数不明确,请要求用户选择所需的响应。
- 按首选顺序调用每个服务。 使用具有足够置信度分数的第一个结果。
提示
在实现不同服务或功能类型的组合时,通过每个工具测试输入以确定每个模型的阈值分数。 这些服务和功能使用不同的评分条件,因此这些工具生成的分数不能直接进行比较。
LUIS 和 QnA Maker 服务规范化分数。 因此,一个 LUIS 模型中的一个分数可能“不错”,但在另一个模型中不太好。
迁移现有语言项目
有关将资源从旧服务迁移到 Azure AI 语言的信息,请参阅:
其他资源
若要管理特定项目或资源:
- 若要管理 Azure 资源,请转到 Azure 门户。
- 若要管理 Azure AI 语言项目,请转到 Language Studio 门户。
- 若要管理 LUIS 应用,请转到语言理解 (LUIS) 门户。
- 若要管理 QnA Maker 知识库,请转到 QnA Maker 门户。
有关特定功能或服务的文档: