知识库编写指南

<< Click to Display Table of Contents >>

当前位置:  增强分析 

知识库编写指南

复制链接

在产品中,知识库是智能问答的关键工具,也是提示词的重要组成部分,能为大模型提供灵活的领域知识,辅助其准确回应用户提问。编写好的知识库支持在服务配置中选择使用。本指南将详细介绍知识库的相关内容,帮助您更好地进行知识库编写。

1. 知识库使用场景

行话解释

例如:出货额,指的是销售额。

概念定义

例如:高净值人群,即为存款高于500万的用户。

问题映射

例如:当提到“东西卖的如何?”或类似问法时,等同于提问“咖啡销售额总和为多少?”。

难点引导

例如:当提到“展示销售额大于800的订单ID,并绑定产品种类、市场分布和市场级别。”或类似的问法时,则按以下的示例进行思考。

1.筛选销售额大于800的内容。

2.在1的基础上分别绑定销售额|||订单ID|||产品种类|||市场分布|||市场级别这些字段。

2. 知识库如何定义

知识库词条包含名称、描述、关键词等。具体来说,知识描述是对某一特定主题或问题的详细解释和背景说明,通常以较为清晰、全面的语言进行阐述。例如,如果问题涉及某一技术领域的概念,知识描述可能会涵盖该概念的定义、应用场景、历史发展等内容。而关键词则是对对应知识描述中核心概念的提炼和聚焦,它通过提取出关键字词,帮助系统在处理问题时进行精准匹配。

2.1 概念定义

定义某个业务术语的解释,如“营业额指一定时间内通过销售商品或服务获得的总收入,通常来源于订单金额合计”。

clip0475_zoom60

【名称】知识词条的名称,一般使用用户问题中所使用的内容。

【同义词】知识名称的同义词,对应同一知识的不同问法。

【描述】对知识词条的详细解释和背景说明,通常以较为清晰、全面的语言进行阐述。一切有利于辅助模型正确地回应用户提问的信息。支持插入系统参数,用法例如“我指的是用户字段过滤?{{_USER_}}”,用户在vivichat中提问“我上半年的销售额是多少?”时,便只会过滤出我的数据。

clip0479_zoom60

【关联数据集】默认为否,该知识词条可应用所有数据集。选择为是,可选择数据集,该词条则只应用于关联的数据集。

clip0480_zoom60

【附加字段】选择关联数据集后,可设置附加字段。附加字段在回答时会同时绑定显示。例如知识名称“高价订单”,附加字段为“利润,成本”,则在提问“高价订单有哪些”时,会同时绑定利润、成本字段。

【关键词】关键词是用于触发知识命中的检索条件。当用户提出一个问题时,系统会首先对问题进行分词、语义分析,并基于“关键词”匹配知识库中的已配置知识。关键词通常是一般词组、字段名、字段值。总体原则是,将知识名称,知识涉及到的字段、字段值添加到关键词中。另外在输入描述后,会自动生成关键词,也可以手动添加。同时也支持点击“自动提取关键词”重新生成。自动提取关键词依赖于配置管理中的默认模型,有时候会生成一些非关键词,用户可删除。

clip0481

【默认规则】如果词条是一些默认的数据统计习惯,需要在各种问数场景下生效,就可以设置为默认规则。例如“当我未提到时间时,默认统计今年的数据”,“当我未指定产品种类时,默认统计咖啡的数据”。可以在默认规则中,指定包含包含/未包含字段,知识则会在满足条件时生效。如果未配置字段,则默认生效。仅概念定义和条件约束支持默认规则。

clip0491_zoom60

2.2 条件约束

定义筛选条件相关的业务术语,如“高价订单是指销售额高于10000的订单”。

clip0476_zoom60

【筛选条件】设置词条的过滤条件,支持细节和汇总过滤。

clip0482_zoom60

2.3 同义词

补充标准词的其他叫法,如“收入 = 销售额”,“省份=地区,区域”。标准词可以是实际的字段名、字段值等。

clip0477_zoom60

【标准词】在数据集中实际的名称,可以是实际的字段名、字段值等。

例如提问“本月河北区域的销售额”,这里的河北指“省份=河北”,区域指“大区=区域toC”。就可以设置标准词为“区域toC”,同义词为“区域”“toC”。提问“本月河北区域销售额”或“本月河北toC的销售额”都可以得到正确答案“本月、省份为“河北省”、大区为“区域toC”的销售额”。

2.4 提问模板

用于定义用户常问问题的句式结构和对应的结果图表,如“【时间】的【省份】【地区】的【指标】,以【单位】为单位,保留【小数位数】位小数”,在编辑图表中编辑好对应的结果图表和数据。最终在使用模板提问时,通过模板定义的确定的图表进行绑定和展示。

clip0478_zoom67

【数据集】提问模板需要基于某个指定数据集设置。

【提问模板】设置问题模板,占位支持维度字段、度量字段、字段值、时间、变量。如“【时间】的【省份】【地区】的【指标】,以【单位】为单位,保留【小数位数】位小数”,【时间】为时间定语,【省份】为省份字段,【地区】为省份字段的值,【指标】为数据集中的某个度量的汇总,【单位】、【小数位数】为变量。因此定义的模板为“[时间1]的[维度字段1][字段值1]的[度量字段1],以[单位1]为单位,保留[小数位数1]位小数”。

变量支持自定义添加,详情参考变量管理。所有占位符最多显示三行,超出则显示更多,点击更多,显示剩余未展示的自定义变量。如图所示:

clip0503_zoom78

支持的时间定语如下:

分类

时间写法示例

周期

本月、本周、今日、当前季度(本季度)、今年、当前年度(本年度)、今天、上月、上周、昨天、昨日、上季度、上个季度、去年、前年、上个月、上星期

具体时间点

今年 3 月、24 年 1 月、去年 5 月、23 年 Q4(2023 年第四季度)、2025 年 6 月、2024 年上半年 / 下半年、今年Q4、202504、20250403、2025、今年3月份、Q1第一个月、2025年、25年、3月、近一个月、近半年、近三年、最近 7 天、近两周

时间相对关系

前天、昨天、今天、前三天、前一个月、前两个月、前一年、前两年、前3个月

简称

Q1(一季度)、Q2(二季度)、Q3(三季度)、Q4(四季度)、今年 Q3、去年 Q2

【问题结果】编辑该问题的回答图表。占位的维度字段、度量字段、字段值、时间、变量均可在图表中作为字段、参数使用。一般来说,字段值、时间、变量用于图表过滤,维度字段和度量字段占位用于图表绑定,使用方式同普通字段。

clip0487_zoom40

clip0488_zoom60

【示例问题】基于该模板的常问问题,例如“2023年的省份河北的销售额,以万为单位,保留1位小数”。在提问输入框中,如果还未输入任何文字,则会在下拉列表中展示推荐模板的示例问题,方便用户理解当前模板的使用,所以务必填写正确的示例问题。

clip0489_zoom66

【调试】【预览】对占位的维度字段、度量字段、字段值、时间、变量,输入相应的真实值,可预览模版执行的结果,用以判断模板是否符合预期。下方问题为根据调试值生成的模板问题,也就是在vivichat中所问的问题。

clip0486_zoom64

3 知识库操作

导出

所有的知识都支持导出为excel。不同类别的词条在不同类别标签栏下分别导出。

clip0483_zoom60

模板和导入

支持下载模板,根据模板的要求进行填写,可批量进行导入。

clip0484_zoom60

clip0485_zoom60

变量管理

1)只有提问模板支持变量管理。变量使用范围:仅针对当前知识库可用。

clip0495_zoom60

clip0496_zoom60

2)支持的变量有两种类型:数值和文本。

数值:纯数字,可作为提问模板中的数值变量,适应于小数位数、TopN等场景。

clip0497_zoom60

文本:文本值,可作为提问模板中的文本变量,适用于单位、百分比等场景。

clip0498_zoom60

例如模板问题:2023年的省份河北的销售额,以百万为单位,保留1位小数。其中“百万”用文本变量、“1”用数值变量。

clip0499_zoom60

3)添加好的变量显示在提问模板中。所有占位符最多显示三行,超出则显示更多。点击变量,即可添加到输入框中。

clip0503_zoom78

4. 不同知识的关键词

类型

示例

只含有字段名

年度这个字段的取值格式都是数字,比如2023、2025之类的。

只含有字段值

A类风险需要邮件通知相关人员特别关注

只含有一般词组

何春涛是北京永洪商智科技有限公司的创始人,CEO。

只含有字段名字段值

当使用到成本字段时,只考虑华北地区的情况,且需要同时查询对应的产品名称市场级别

只含有一般词组字段名

收益率=(期末价值-期初价值)/期初价值

成绩优秀学科成绩平均在90分以上的。

只含有一般词组字段值

一线城市是指北京上海深圳

只含有一般词组字段名字段值

低绩效,指绩效评级CD的情况

5. 知识库示例

5.1 行话解释

各行业有不同的行话,这些行话在图表上的展现可能会使用到若干字段、值才能实现。知识库可以通过文字描述的形式解释行话的行为。

1)单对单解释

根据下图的演示,数据表中虽然没有出货额这个字段,但通过知识库单对单的解释,可以使智能问答了解出货额就是销售额,建立解释关系。

clip0455_zoom60

clip0456_zoom31

2)单对多解释

这里的单对多解释和下面的多对多解释通常指的是:将行话所要使用的若干个字段、或值额外绑定在图表中。根据下图的演示,可以看到出货额与咖啡销售额建立的解释。

clip0457_zoom60

clip0458_zoom32

3)多对单解释

根据下图的演示,与单对单解释同理,多对单解释可以为字段建立多种行话。

clip0459_zoom60

clip0460_zoom32

4)多对多解释

根据下图的演示,多对多解释可以绑定更多的字段,能展现的内容更加灵活。

clip0461_zoom60

clip0462_zoom32

说明:

行话解释与别名的功能相类似,但比别名更加灵活。别名仅能为字段建立解释,而行话解释不仅可以使用上述四种解释方式,还可以在解释过程中描述详细的问题。

5.2 概念定义

概念定义类知识用于对某一专业术语或业务核心名词进行准确、简洁的解释。它回答“是什么”的问题,通常包括概念的定义、特点、适用范围等。例如:“高价订单,即销售额高于200的订单”

clip0473_zoom60

clip0474_zoom47

5.3 问题映射

问题映射包含四种:单对单映射、单对多映射、多对单映射和多对多映射,可以使用用户比较习惯的问法去映射到规范的问法(规范的问法有利于大模型正确识别用户意图,生成更准确的图表)。用户习惯的问法可以不带任何关键字、值等信息,方便用户问询。由于多对单、多对多与行话解释的类似,因此不过多赘述,仅介绍前两种映射形式。

1)单对单映射

根据下图的演示,规范的问法被映射到了一个日常化的问法。

clip0463_zoom60

clip0464_zoom32

2)单对多映射

如果用户的业务中同一个问题包含不同种需求,则可以使用单对多映射,将不同的需求存储在知识库中,使用固定的问题触发,随后以单选的形式问询。根据下图的演示,可以在问询“我关注的重点问题有哪些?”后获得知识库提前规定好的若干问题,回答问题标号即可做出等同于问询的操作。

clip0465_zoom60

clip0466_zoom31

5.4 难点引导

性能较弱的大模型有时会难以理解用户的问题从而做出不符合预期的回答,这时可以在知识库中对难点问题进行引导。根据下图的演示,可以发现大模型仅仅是理解到绑定这些字段,却没有识别出“销售额大于800”的意思。

使用知识库前:

clip0467_zoom31

难点引导知识库:

clip0468_zoom60

使用知识库后:

clip0469_zoom32

6. 知识库填写最佳实践

1)各个知识描述要尽可能独立,不要存在类似的概念。如果存在类似的概念,应该将其合并为一个知识,并用特殊的标记区分。

每次能够提供给大模型的知识是有限的,因此提问对应的知识越少越好。假设能给大模型提供的知识仅有三条,一个知识库内某条提问相关的知识有十条,那么会导致给大模型提供的知识会丢失七条,如果我们想要的知识在这丢失的七条内,那么就会造成图表不符合预期的问题。

2)知识如果模型的效果不好,尽量使用难点引导的例子将知识描述写的更加详细,比如使用哪些字段和值、过滤的细节、图表类型等。

3)描述内使用的字段要与数据表中字段完全一样。

如果产生偏差可能会影响图表的准确性。

4)不建议使用链式知识。

clip0470_zoom57

如上图所示,某知识是在若干条知识的基础上实现的就被成为链式知识。想要提问“今日库存额”就不得不使用“库存额”的知识描述。链式知识会给大模型产生一定的理解难度,影响图表的准确性。

5)关键词的确定方法。

clip0471_zoom31

如果不知道如何分解提问的关键词,可以直接根据“识别提问关键词”的结果获取。值得注意的是:如果不同的两个问题获得了同样的关键词,那么需要适当改变问题的问法,以防相互影响。

6)知识库是否被使用的确定方法。

如果不知道想要的知识是否被提供给了大模型,可以在日志中搜索“知识描述”,后面中括号内的部分就是提供给大模型的知识,可以根据知识是否符合预期适当调整知识描述和问题。

clip0472_zoom44