在 KMatrix 的设计中,Dataset (数据集) 是知识库(Knowledge Base)之下的核心逻辑单元。如果说“知识库”是一个图书馆,那么“数据集”就是图书馆里的书架,但它比书架更聪明——它不仅是存储位置,更是数据处理策略的容器。
以下是关于 Dataset 概念的深挖:
1. 它是层级关系的中枢
KMatrix 的知识存储架构是:
知识库 (Knowledge Base) -> 数据集 (Dataset) -> 文档 (Document) -> 分块 (Chunk)
- 知识库:代表业务边界(如“HR 知识库”、“技术文档库”)。
- 数据集:代表数据来源和处理逻辑的集合。
2. 它是“处理策略”的实际承载者 (The Strategy Container)
这是 Dataset 最重要的职责。同一个知识库中,你可能有不同的数据源,它们的特征完全不同,因此不能用“一刀切”的方式处理。Dataset 决定了数据如何“进入”系统。
- 决定处理逻辑 (Process Type):
- 如果你创建一个
GENERIC_FILE类型的数据集,它会调用 Tika 引擎解析 PDF/Word。 - 如果你创建一个
QA_PAIR类型的数据集,它会去解析 Excel 里的“问”与“答”列。 - 这保证了同一个知识库可以混合存储异构数据(文件、网页、数据库、结构化问答)。
- 如果你创建一个
- 决定分块粒度 (Chunking Config):
- 你可以在“合同数据集”中设置分块大小为 1000 字(为了保留严密的逻辑)。
- 在“常见问题数据集”中设置分块为 200 字(为了极高的检索精度)。
- 这些参数(Size, Overlap, Child-size)都是在 Dataset 级别定义的,而不是在知识库级别。
3. 它的核心属性与设计意图
从代码实现 (KmDataset.java) 来看,它的几个关键设计点:
sourceType(来源类型):标记数据是怎么来的。是用户手动上传的(FILE_UPLOAD)?还是系统去自动爬取的(WEB_CRAWL)?或者是直接粘贴的文本(TEXT_INPUT)?config(动态配置):这是一个 JSON 字段(Map类型)。它赋予了 Dataset 极强的扩展性。比如对于“网页爬取”数据集,这里可以存储爬取的起始 URL、深度限制、Cookie 等信息;对于“外部同步”数据集,这里可以存储第三方系统的 API Token。isSystem(系统预设):某些数据集是系统初始化时自带的(比如为了存放系统引导说明),标记为true后不可被用户误删。
4. 为什么要引入 Dataset 这一层?
如果没有 Dataset,直接让知识库管理文档,会带来两个灾难:
- 管理混乱:数千个文档堆在一个库里,无法分类管理。
- 灵活性丧失:你无法为一个库里的不同文档设置不同的分块大小或解析方式。
总结:
在 KMatrix 中,Dataset 是数据进入 AI 大脑的“加工车间”。它根据数据的来源属性(Source Type)和内容特征(Process Type),定义了一套标准化的流水线参数。通过划分不同的 Dataset,KMatrix 实现了对海量知识的精细化、差异化管理。
作者:admin 创建时间:2026-04-28 16:29
最后编辑:admin 更新时间:2026-05-01 09:38
最后编辑:admin 更新时间:2026-05-01 09:38