你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
知识库开发生命周期介绍如何从头至尾地管理 KB。 使用这些最佳做法来改进知识库,并向客户端应用程序或聊天机器人的最终用户提供更好的结果。
注意
QnA Maker 服务将于 2025 年 10 月 31 日停用(从 2025 年 3 月 31 日延长)。 问答功能的较新版本现已作为 Azure AI 语言的一部分提供。 有关语言服务中的问答功能,请参阅问答。 从 2022 年 10 月 1 日开始,你将无法再创建新的 QnA Maker 资源。 从 2025 年 3 月 31 日开始,QnA Maker 门户不再可用。 有关将现有 QnA Maker 知识库迁移到问题解答的信息,请参阅迁移指南。
提取
QnA Maker 服务持续改进着从内容提取 QnA 的算法,并扩展支持的文件和 HTML 格式的列表。 按指南操作,根据文档类型进行数据提取。
一般情况下,常见问题解答页面应单独存在,且不会与其他信息合并。 产品手册应该具备明确的标题,并且最好有一个索引页。
配置多回合
创建启用多回合提取的知识库。 如果你的知识库确实需要或应该支持问题层次结构,可以从文档中提取此层次结构,也可以在提取文档后创建此层次结构。
创建有价值的问题和解答
有价值的问题
最佳的问题都很简单。 请考虑每个问题的关键字或短语,然后为该关键字或短语创建一个基本问题。
根据需要添加尽可能多的备用问题,但变更要简单。 添加更多不属于问题主要目标的字词或措辞无助于 QnA Maker 找到匹配项。
添加相关的替代问题
你的用户可能会输入具有对话式文本样式的问题, How do I add a toner cartridge to my printer? 或者输入关键字搜索,例如 toner cartridge。 知识库应同时具有这两种样式的问题,以正确返回最佳答案。 如果不确定客户输入了哪些关键字,请使用 Application Insights 数据来分析查询。
有价值的答案
最好的答案应该是简洁的答案,但不要太简单。 不要使用像yes和no这样的答案。 如果答案需要链接其他来源,或者提供丰富的媒体和链接体验,请使用元数据标记来区分答案,然后将元数据标记与查询一起提交到 strictFilters 属性中,以便获得正确版本的答案。
| Answer | 跟进提示 |
|---|---|
| 按键盘上的电源按钮关闭 Surface 笔记本电脑。 | * 用于睡眠、关机和重启的组合键。 * 如何硬启动 Surface 笔记本电脑 * 如何更改 Surface 笔记本电脑的 BIOS * 睡眠、关机和重启有何不同 |
| 全天候通过电话、Skype 和短信提供客户服务。 | * 销售的联系信息。 * 办公地点和商店地点以及营业时间。 * Surface 笔记本电脑的配件。 |
聊天内容
向机器人中添加聊天内容可以轻松地使其更健谈而有趣。 可以在创建知识库时轻松地添加预定义的个性中的聊天数据集,并可随时对其进行更改。 了解如何向知识库添加聊天内容。
支持多种语言的聊天。
选择一种个性
聊天支持多种预定义的个性:
| 个性化 | QnA Maker 数据集文件 |
|---|---|
| Professional | qna_chitchat_professional.tsv |
| 友好 | qna_chitchat_friendly.tsv |
| 有趣 | qna_chitchat_witty.tsv |
| 体贴 | qna_chitchat_caring.tsv |
| 热情 | qna_chitchat_enthusiastic.tsv |
响应既有正式的,也有非正式的和粗鲁的。 请选择与所需机器人语气最接近的个性。
编辑特定于机器人的问题
有一些特定于机器人的问题,这些问题是聊天数据集的一部分,并且使用泛型答案进行了填充。 更改这些答案,使之能够最好地反映机器人的细节。
建议使下述聊天 QnA 更具体:
- 你是谁?
- 你可以做什么?
- 你多大了?
- 谁创建了你?
- 你好
添加带有元数据标记的自定义聊天
如果添加自己的聊天 QnA 对,请确保添加元数据,以便返回这些答案。 元数据名称/值对为 editorial:chitchat。
搜索答案
GenerateAnswer API 同时使用问题和答案来搜索用户查询的最佳答案。
只有在答案不相关的情况下才搜索问题
如果不想搜索答案,请使用 RankerType=QuestionOnly。
例如,当知识库是一个以首字母缩写词为问题的目录,并用其完整形式作为答案时。 答案的值无助于找到相应的答案。
排名/评分
请确保充分利用 QnA Maker 支持的排名功能。 这样做可以提高给定用户查询得到相应响应的可能性。
选择一个阈值
用作阈值的默认置信度分数为 0,但是,可以根据需要更改知识库的阈值。 由于知识库各不相同,因此应该进行测试,选择最适合知识库的阈值。
选择 Ranker 类型
默认情况下,QnA Maker 搜索问题和答案。 如果只想要搜索问题,则在 GenerateAnswer 请求的 POST 正文中使用 RankerType=QuestionOnly 来获取答案。
添加替代问题
替代问题可提高用户查询匹配到结果的可能性。 如果同样的问题能以多种方式提出,则替代问题就很有用。 此方法可以包括句子结构和单词样式的更改。
| 原始查询 | 备用查询 | 更改 |
|---|---|---|
| 是否有停车的地方? | 你有停车的地方吗? | 句子结构 |
| 嗨 | 呦 你好! |
措辞方式或俚语 |
使用元数据标记筛选问题和解答
元数据 增加了客户端应用程序知道它不应获取所有答案的功能,而是缩小基于元数据标记的用户查询结果的范围。 即使查询相同,知识库的答案也可能因元数据标记而有所不同。 例如,如果餐厅分支的位置不同, 则停车位置 可以有不同的答案 ,即元数据是 Location: Seattle 与 Location: Redmond。
使用同义词
虽然英语对同义词的支持有限,但可以通过 Alterations API 使用不区分大小写的词形变换,为采用不同形式的关键字添加同义词。 同义词添加到 QnA Maker 服务级别并由服务中的所有知识库共享。
使用不同的词来区分问题
QnA Maker 的匹配用户查询的排名算法在每个问题解决不同需求时,能够最佳地将用户查询与知识库中的问题进行匹配。 如果问题间存在重复的相同词组,则会降低为含有这些词的给定用户查询选择正确答案的概率。
例如,对于以下问题,你可能有两个不同的 QnA:
| QnA |
|---|
| 停车位置在哪里 |
| ATM 位置在哪里 |
由于这两个 QnA 的措辞相似,因此这种相似性可能导致许多措辞类似于“<x> 位置在哪里”的用户查询获得类似的分数。 相反,应该尝试通过使用诸如 停车场在哪里 和 ATM 在哪里 这样的具体查询,来清楚地区分问题,从而避免使用诸如“位置”这类可能出现在知识库中许多问题的字词。
协作
QnA Maker 让用户可以在知识库上进行协作。 用户需要具备对 Azure AI QnA Maker 资源组的访问权限才能访问知识库。 某些组织可能想外包知识库的编辑工作和维护工作,但仍要能保护 Azure 资源的访问权限。 在不同订阅中设置两个完全相同的 QnA maker 服务并选择一个用于编辑测试循环,即可完成编辑者-审批者模型。 测试完成后,知识库内容会随 导入-导出 过程一起传输到审批者的 QnA Maker 服务,最终发布知识库并更新终结点。
主动学习
主动学习在提供大量基于用户的高质量和高数量的查询时,可以最好地建议备选问题。 请务必允许客户端应用程序的用户查询在没有审查的情况下参与主动学习反馈循环。 当 QnA Maker 门户中提供问题建议后,可按建议筛选,然后审阅并接受或拒绝这些建议。