在AI原生应用引擎中创建知识数据集
知识库是组织、存储及管理知识的系统,涵盖文档、图片、视频等信息的分类整理,可以帮助用户高效管理大量的信息。在Agent中添加知识库,使其与用户提供的专业知识库进行交互,可以显著提升Agent的准确度和专业度。
知识数据集是组成知识库的重要元素,其核心是将零散知识(如文档、图片、视频等)加工成结构化知识单元:通过本地上传或OBS接入数据,经预处理后切片拆分为更小的知识单元,并配置索引以便Agent快速定位所需知识。完成知识数据集创建后,将其关联至知识库,形成可调用的知识体系。
前提条件
- 通过OBS(对象存储服务)接入数据时,操作账号需获得OBS只读权限和下载权限,具体操作请参见对其他账号授予桶的读写权限。
- 需具备充足的知识库容量包资源(包含OBS存储配额和向量库存储配额,两者比例为5:1),每个租户默认具备5G的OBS存储配额,默认配额用完后,请参考购买AppStage购买知识库容量包。
- 需要具备AI原生应用引擎管理员或开发者权限,权限申请操作请参考AppStage组织成员申请权限。
创建知识数据集
- 进入AI原生应用引擎。
- 在AI原生应用引擎的左侧导航栏选择“知识中心 > 知识库”。单击“创建知识数据集”。
- 配置知识数据集基础信息,参数说明如表1所示。
表1 基础配置参数说明 参数
说明
数据集名称
自定义知识数据集名称,支持中英文、数字、下划线(_),长度2-50个字符,以中英文、数字开头。
数据集描述
输入数据集的功能等相关描述,长度最大为255个字符,只能包含英文、中文、数字、下划线、中划线、空格及,.?:;"':;“”’‘,。?、()()/。
标签
在下拉列表选择数据集的分类标签。支持通过以下三个维度选择标签(支持多选),各维度下的细分标签以页面展示为准。
- 行业:数据集所适用的行业。
- 适用领域:数据集的适用领域。
- 通用:通用维度。
数据类型
根据实际需要可选以下格式:
- 文档:支持pdf、txt(只支持UTF-8)、csv(只支持UTF-8)、xlsx、docx、pptx、html、json、xml、md格式,单个文件最大为10MB,总上传大小最大为500MB。
- 图片:支持png、jpg、jpeg、gif、webp、bmp格式,单张图片最大为10MB,总上传大小最大为200MB。
- 图片-摘要:支持本地文件上传png、jpg、jpeg、gif、webp、bmp格式,需对图片填写摘要信息,单张图片最大为10MB,总上传大小最大为300MB。
- 视频-摘要:支持本地文件上传mp4、webm、wmv、mov、avi格式,需对视频填写摘要信息,单个视频最大为100MB,总上传大小最大为300MB。
- 在“数据接入”区域,配置数据接入方式及相关参数,参数说明如表2所示。
表2 数据接入配置参数说明 参数
说明
接入方式
选择数据集的接入方式。支持以下两种方式:
- 本地上传:数据文件在本地,从本地选择文件进行上传。
- OBS接入:数据文件存放在华为云OBS桶,从OBS桶接入数据。
仅支持使用区域位置为北京四的OBS桶接入数据。
数据文件
当接入方式选择“本地上传”时,需配置此参数。
单击“文件上传”选择本地文件进行上传,仅支持pdf、txt(只支持UTF-8)、csv(只支持UTF-8)、xlsx、docx、pptx、html、json、xml、md格式,单个文件最大为10MB,总上传大小最大为500MB。
文件类型
- 当接入方式选择“本地上传”时,无需配置,根据上传的文件自动识别文件类型。
- 当接入方式选择“OBS接入”时,选择接入的文档、图片的格式。
OBS桶名
当接入方式选择“OBS接入”时,需配置此参数。
在下拉列表中选择数据所在的OBS桶名。
OBS路径
当接入方式选择“OBS接入”时,需配置此参数。
在下拉列表中选择数据所在的具体OBS路径。
调度类型
当接入方式选择“OBS接入”时,需配置此参数。
可选如下两种类型:
- 一次性调度:手动执行时运行一次。
- 定时调度:按照设定的执行周期运行。
版本更新模式
当“调度类型”选择“定时调度”时,需配置此参数。
- 覆盖模式:每次调度成功,会覆盖唯一的版本。
- 多版本模式:当OBS桶内内容发生变化时,调度成功后会生成一个新版本。
执行周期
当“调度类型”选择“定时调度”时,需配置此参数。
设置执行周期,支持选择为天、周。
执行时间
当“调度类型”选择“定时调度”时,需配置此参数。
- 当执行周期为“天”时,设置每日开始执行的时间。
- 当执行周期为“周”时,指定每周周几,并设置当日开始执行的时间。
立即执行
当“调度类型”选择“定时调度”时,需配置此参数。
选择是否立即执行。
- 在“数据加工”区域,配置数据清洗、数据预处理以及数据切分策略,参数说明如表3所示。
表3 数据加工配置参数说明 参数
说明
数据清洗(可选)
数据清洗是指剔除重复内容、无效信息(如乱码、空格)等。
数据类型选择为“文档”、“图片-摘要”、“视频-摘要”时,显示此参数。
在下拉列表选择(支持多选):
- 清除URL和邮件地址
- 清除连续的空格,换行符和制表符
- 清除不可见字符
- 规范化空格
- 清除乱码
- 清除网页标识符
- 清除表情
PDF预处理
当接入的文档类型为.pdf时,显示此参数。
- 提取PDF富媒体:提取PDF文件中的富媒体(图片、表格等)。
- 无处理
智能匹配图表
当“PDF预处理”选择为“提取PDF富媒体”时,显示此参数。
- 智能匹配图表:数据切分时,大模型会将图片、表格信息与相关文本进行智能匹配整合。此处默认使用chatglm3-6b作为智能匹配大模型。
- 无处理
数据切分
数据类型选择为“文档”时,显示此参数。
数据切分是将文件拆分为若干切片,以便对每个切片进行关键字段提取。下拉列表中可选的模式包括:
- 自动切分:按照系统默认预设的规则和分隔符切分。
- 标题切分:按标题级别分块,分块后的内容按照自定义规则切分(标题切分仅支持docx格式,非docx格式的文件会按照自动切分处理)。
- 自定义切分:自定义分段规则,分隔符,以及分段长度等参数。
标题层级深度
数据切分模式为“标题切分”时,需配置此参数。
标题层级深度是指设置的切分标题级别,例如,文本包含最多5级标题,选择的标题层级深度为3,则会分别将所有3级标题下的内容合并成文本块,文本块作为一个整体执行后续切分操作。
标题保存方式
数据切分模式为“标题切分”时,需配置此参数。
标题保存方式指标题信息在切片中的保存形式,影响检索结果的展示逻辑和索引构建方式。
- 多标题组合:多级标题用特定符号组合:1级标题-2级标题-3级标题-…-文本
- 最后一级标题:仅组合最后一级标题:最后一级标题-文本
文本切分策略
数据切分模式为“自定义切分”或“标题切分”时,需配置此参数。在下拉列表可选以下策略:
- 递归切分:所选分隔符先后作为优先级顺序,优先高的先切分,切分后大于最大长度的分段再用优先级低的分隔符切分,如此往复。
- 等价切分:分隔符无优先级,使用所选的所有分隔符切割,合并至分段最大长度。
分段分隔符
数据切分模式为“自定义切分”或“标题切分”时,需配置此参数。
设置用于文本分段的分隔符号。输入的分隔符不允许包含以下特殊字符*./$^?+以及带有\的分隔符,仅支持输入\n,用于表示按行分隔,其它诸如\\n,\n\n等均不支持。
包含分隔符
切分后的分段内容中是否包含分隔符,选择“包含”或“不包含”。
分段最小长度
数据切分模式为“自定义切分”或“标题切分”时,需配置此参数。
用于设置文本分段后每段的长度。如果当前分片长度小于该值,则会和其他分片进行合并直到接近该值,所以如果不想合并,请将分段长度设置为1。
分段重叠长度
数据切分模式为“自定义切分”或“标题切分”时,需配置此参数。
用于设置当前分段开头与上一个分段结尾重叠部分的长度。
- 开启“切片提取配置”开关,参照表4配置切片提取。
切片提取配置是指从已切分好的分片中提取特定片段,这些提取出的片段将作为索引字段使用。
表4 切片提取配置参数说明 参数
说明
切片提取模式
数据类型选择为“文档”时,显示此参数。
切片提取模式是从文件切片中获取关键信息的方式,包含以下两种:
- 智能提取:通过大语言模型chatglm3-6b提取分片内的问题与回答,效果由大模型决定。目前仅支持提取问题和答案,且耗时较长。
- 规则提取:按照用户配置的提取规则对切片内容进行提取。
切片内容示例(可选)
数据类型选择为“文档”时,显示此参数。
输入切片内容作为切片提取的示例,便于查看提取效果。
示例:
小儿肥胖超重该怎样医治?答:孩子一旦患上肥胖症家长要先通过运动和饮食来改变孩子的情况,要让孩子做一些他这个年龄段能做的运动,如游泳,慢跑等,要给孩子多吃一些像苹果,猕猴桃,胡萝卜等食物,禁止孩子吃高热量,高脂肪的食物,像蛋糕,干果,曲奇饼干等,严格地控制孩子的饮食,不要让他暴饮暴食,多运动对改变孩子肥胖都是有好处的,在治疗小儿肥胖期间如果情况严重,建议家长先带孩子去医院检查一下孩子肥胖症的原因再针对性的治疗。
切片提取配置
切片提取模式为“规则提取”时,配置此参数。
单击“添加提取字段”,配置如下参数:
- 切片片段名称:自定义切片片段名称,例如,question、answer。
添加的提取字段数量不超过10个,切片片段名称长度最多为20个字符,不允许重复,不允许为以下名称(大小写不敏感):file_name、file_id、path、order、document、base64、chunk,不能以ki_、ko_开头,仅可包含字母、数字、下划线,并且以字母开头。
- 提取规则:分隔符提取、按规则提取。
- 分隔符提取:通过特定字符作为标记来拆分内容,提取目标信息。
- 按规则提取:系统按预设规则匹配并提取信息。
- 提取设置
- 当提取规则为“分隔符提取”时,例如,以分隔符?对切片进行分段,选择第1个分段,片段中不包含分隔符。
输入的分隔符不允许包含以下特殊字符*./$^?+以及带有\的分隔符,仅支持输入\n,用于表示按行分隔,其它诸如\\n,\n\n等均不支持。
在填写“选择第{{片段序号}}个片段”时,如果此处的片段序号超出片段数量,则提取内容为空。
- 当提取规则为“按规则提取”时,例如,从切片提取以答:开头和以。结尾的片段,选择第1个片段,片段中不包含开头,不包含结尾。
- 当提取规则为“分隔符提取”时,例如,以分隔符?对切片进行分段,选择第1个分段,片段中不包含分隔符。
切片提取效果
数据类型选择为“文档”时,显示此参数。
展示对切片内容提取后的效果。以上述配置为例,切片提取效果如下:
第一个片段名称为question,提取内容为:小儿肥胖超重该怎样医治
第二个片段名称为answer,提取内容为:孩子一旦患上肥胖症家长要先通过运动和饮食来改变孩子的情况,要让孩子做一些他这个年龄段能做的运动,如游泳,慢跑等,要给孩子多吃一些像苹果,猕猴桃,胡萝卜等食物,禁止孩子吃高热量,高脂肪的食物,像蛋糕,干果,曲奇饼干等,严格地控制孩子的饮食,不要让他暴饮暴食,多运动对改变孩子肥胖都是有好处的,在治疗小儿肥胖期间如果情况严重,建议家长先带孩子去医院检查一下孩子肥胖症的原因再针对性的治疗
- 单击“创建数据集”。创建的数据集显示在知识数据集列表中,数据集状态为“等待执行”。
如果需要为数据集创建索引配置,单击“下一步”,参考创建索引配置。
创建索引配置
索引配置是对知识数据集中的字段、检索逻辑、数据处理规则进行结构化定义的过程,用于适配不同的检索需求,目的是能够快速定位、筛选和返回符合需求的数据内容。
- 知识数据集编辑完成后,单击“下一步”,进入索引配置页面。
- 在索引配置页面,参照表5进行相关参数的配置。
表5 索引配置参数说明 参数
说明
基础配置
索引配置名称
自定义索引配置名称。支持中英文、数字、下划线(_),长度2-50个字符,以中英文、数字开头。
索引描述(可选)
索引配置的描述信息。
RAG类型
GraphRAG类型仅支持用于“文档”类型的数据。
- VectorRAG:向量RAG,是一种结合了向量化和大语言模型的RAG技术。VectorRAG将非结构化的数据转化为结构化的向量空间,利用向量库实现高效的信息检索。
- GraphRAG:知识图谱RAG,是一种结合了知识图谱和大语言模型的RAG技术。GraphRAG能够处理各种类型的文档,从中提取实体(文档中具体的对象或概念)、关系以及文本内容构建知识图谱(一种结构化的知识表示方式),从而增强大语言模型对复杂信息的理解和推理能力。
向量化配置
向量化模型
向量化模型是将文本数据转换为数值向量的过程。常用于将文本转换为机器可以处理的形式,以便进行各种任务,如文本分类、情感分析、机器翻译等。
支持选择模型服务商API、预置模型API、我的模型API(我部署的、我接入的)。
当前向量化模型支持的最大长度为512 token,对应的中文约为512个字,英文与符号约900个字符,请注意分片长度。
模型服务商API使用前需要先设置鉴权,具体操作请参见如何对模型供应商提供的模型服务设置鉴权。
长文本策略
- 默认模式:如果待向量化分片字段token长度超过了向量化模型限制的token总数,则创建知识库失败。
- 截断模式:如果待向量化分片字段token长度超过向量化模型限制的token总数,则进行截断,取前top k个token。
- 智能模式:如果待向量化分片字段token超过向量化模型限制的token总数,首先利用对话大模型对超长分片进行重写,如果仍然超长则进入截断模式。
知识图谱配置
当RAG类型为GraphRAG时,需要配置此参数。
实体抽取模型
选择实体抽取模型。从文本中提取实体(文档中具体的对象或概念)、关系以及文本内容,用于构建知识图谱。
实体抽取提示语
选择实体抽取提示语。
- 默认:模型按照默认的提示语要求,对文本内容进行抽取。
- 自定义:对默认的提示语进行编辑,自定义实体抽取方式。
索引字段配置
- 当RAG类型为“VectorRAG”时 ,配置如下参数:
- 检索字段:选择对哪个字段进行检索,并作为检索命中内容返回。
- 文本过滤字段:在检索时同步对该字段进行文本过滤,并返回该字段的内容。在工作流中调用知识库时,对文本过滤字段配置过滤条件,可以对知识库检索结果进行过滤和排序,以确保检索结果的精准度和相关性。具体请参见查询知识库配置说明。
- 附加返回字段:在检索时附加返回该字段的内容。
- 当RAG类型为“GraphRAG”时 ,配置如下参数:
- 实体抽取字段:选择对哪个字段进行实体抽取。选择从chunk抽取实体时,chunk是一个完整切片,是指从这个切片的内容里面去抽取实体。
- 附加返回字段:选择哪些字段在检索时附加返回。
- 单击“创建数据集和索引配置”,创建的数据集和索引配置显示在数据集列表中。
更多操作
创建数据集完成后,可根据需要执行如表6所示的操作。
操作 |
步骤 |
---|---|
查看数据集详情 |
在数据集列表中单击数据集名称,在知识数据集详情页面查看数据概况、索引配置、调度历史以及溯源。在索引配置页签中,支持进行如下操作:
|
修改数据集 |
|
复制数据集 |
在数据集列表中,选择操作列的“创建数据集”,即可创建新的数据集。 ,根据需要修改当前数据集配置,单击 |
删除数据集 |
|
创建索引配置 |
在知识数据集列表中,单击操作列的“创建索引配置”,参考表5进行配置。 |
编辑切片 |
数据集的数据类型为“文档”时,支持编辑切片。编辑切片不会直接更新原数据集,需要生成新的数据集版本使编辑内容生效。
|
生成新的数据集版本 |
切片编辑完成后,必须生成新的数据集版本,才能使编辑内容生效。
|
相关文档
- 如果创建数据集时提示“向量数据库存储使用量超过上限”,请根据文档排查解决,请参见向量数据库存储使用量超过上限。
- 如果编辑切片后,知识库命中测试及检索召回结果未更新,请根据文档排查解决,请参见编辑切片后,知识库命中测试及检索召回结果未更新。
- 知识数据集创建完成后,需要在知识库中关联使用,请参考在AI原生应用引擎中创建知识库。
- 知识数据集相关的OpenAPI请参见知识中心。