--- title: 知识库 date: 2024-05-09 11:40:36 tags: [Hexo, Keep] categories: [Hexo] --- # 2.1 知识库 ``` 企业私有的专业知识库,包含各种类型的数据,是问答对话中回答用户问题的知识来源。 MaxKB 知识库分为通用型知识库和 Web 站点知识库两种类型。 通用型知识库:对离线文档上传管理,支持的文档类型为 Markdown、TXT、PDF、DOCX 类型的文本数据。 Web 站点知识库:用于获取在线静态文本数据管理,输入 Web 根地址后自动同步根地址及子级地址的文本数据。 ``` ``` 点击【知识库】菜单,进入知识库列表页面,该页面支持知识库创建、编辑、同步、删除、查询等功能。 ``` ![datasetlist](https://github.com/1Panel-dev/MaxKB/assets/52996290/3e727644-6be5-4a96-b653-e225ff5a912e) ## 2.1.1 创建通用型知识库 ``` 打开【知识库】页面,点击【创建知识库】,进入创建知识库页面。 输入知识库名称、知识库描述、选择通用型知识库类型。 然后将离线文档通过拖拽方式或选择文件上传方式进行上传。 ``` - **上传文档** ``` 上传文档要求: 支持的格式为Markdown、TXT、PDF、DOCX; 每次最多上传 50 个文件; 每个文件不超过 100 MB; 支持选择文件夹,上传文件夹下符合要求的文件。 文档规范建议: 1、规范分段标识:离线文档的分段标识要有一定规范,否则拆分出来的段落会不规整。 2、段落要完整:一个分段中最好能描述一个完整的功能点或问题。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/ea49563a-4e73-4436-968e-0247f727667d) - **设置分段规则** **智能分段** ``` MarkDown 类型的文件分段规则为:根据标题逐级下钻式分段(最多支持 6 级标题),每段的字符数最大为 4096 个字符; 当最后一级的文本段落字符数超过设置的分段长度时,会查找分段长度以内的回车进行截取。 DOC 类型的分段规则为:识别标题格式转换成markdown的标题样式,逐级下钻进行分段(最多支持 6 级标题)每段的字符数最大为 4096 个字符; TXT和 PDF 类型的文件分段规则为:按照标题# 进行分段,若没有#标题的责按照字符数4096个字符进行分段,会查找分段长度以内的回车进行截取。 ``` ![automatic paragraphing](https://github.com/1Panel-dev/MaxKB/assets/52996290/52198412-0876-4172-b52a-41a933990a75) **高级分段** ``` 用户可以根据文档规范自定义设置分段标识符、分段长度及自动清洗。 分段标识支持:#、##、###、####、#####、######、-、空行、回车、空格、分号、逗号、句号,若可选项没有还可以自定义输入分段标识符。 分段长度:支持最小 50个字符,最大 4096 个字符。 自动清洗:开启后系统会自动去掉重复多余的符号如空格、空行、制表符等。 ``` ![Advanced segmentation](https://github.com/1Panel-dev/MaxKB/assets/52996290/904acea7-c08f-48d3-a573-a8936a135108) **预览** ``` 分段规则设置完成后,需要点击【生成预览】查看最新规则的分段效果。 ``` ![Preview segmentation](https://github.com/1Panel-dev/MaxKB/assets/52996290/992825a6-74a6-4332-9c3e-83224fdfd8d5) ``` 用户可在分段预览中对不合理的分段进行编辑和删除。 ``` EditSegments - **创建完成** ``` 点击【创建并导入】后,系统会对文档进行自动分段 -> 存储 -> 向量化处理操作。 在创建完成页面可以看到导入的文档数量、分段数量和字符数。 ``` ![finish](https://github.com/1Panel-dev/MaxKB/assets/52996290/8a0b5082-ac71-470b-9e25-4288c98b786a) ``` 点击【返回知识库列表】回到知识库列表页面。 点击【前往文档】进入该知识库的【文档】列表页面。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/1047c7ec-a6e8-4f09-b08e-c819467c2426) ## 2.1.2 创建Web站点知识库 ``` 点击【创建知识库】,进入创建知识库页面,用户需要输入知识库名称、知识库描述、选择通用型知识库类型。 ``` ![web_dataset](https://github.com/1Panel-dev/MaxKB/assets/52996290/8ee2704a-987e-4e92-ae72-a2f7b6ff567c) ``` Web根地址:为在线静态网页站点的根节点地址,系统会自动获取 Web 根地址及子级地址的数据资料。 以 DataEase V1在线文档为例,可在 Web 根地址设置为:https://dataease.io/docs/v1/ 选择器:是针对Web页面的数据可以设置定获取某个div内的数据,默认获取 body数据。 如 DataEase 在线文档仅获取中间内容部分,可以右键检查网页,定位到中间内部区域找到 div为 md-content,则选择器输入为:.md-content 。 ``` ![DataEase_doc](https://github.com/1Panel-dev/MaxKB/assets/52996290/c137d27e-dae2-4215-96f8-433f19ace7ab) ``` 点击【创建并导入】后,跳转到文档列表页面查看当前 Web站点下文档的导入状态,导入完成后,文件状态变为成功状态,导入失败的则文件状态为失败。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/dd80ab6a-3712-4293-8bd8-eca4c9aaad37) ## 2.1.3 删除知识库 ``` 在知识库列表,点击知识库面板的【…】-》【删除】对知识库进行删除操作。 ``` ![dataset_del](https://github.com/1Panel-dev/MaxKB/assets/52996290/af2e1817-ae57-4f99-a0fe-dcd55ea1c927) ## 2.1.4 设置知识库 ``` 在知识库列表,点击知识库面板的【…】-》【设置】进入知识库设置页面。 ``` dataset_set ``` 进入【设置】菜单,可以对当前知识库名称、描述进行修改。 可以关联/取消关联应用,应注意可关联的应用和知识库同属于一个用户。 所有设置保存后设置生效。 ``` ![dataset_setting](https://github.com/1Panel-dev/MaxKB/assets/52996290/9d647528-82fd-4f2d-800b-99870ee70d34) ## 2.1.5 文档 ``` 不同知识库类型的文档属性不同,功能不同,但最终的分段数据会统一一致。 ``` ### 2.1.5.1 通用型知识库文档 ``` 点击通用型知识库面板,进入通用型知识库的【文档】页面。 在文档列表页面新文档上传、快速创建空白文档、文档重命名、删除、启用/禁用等操作。当文档禁用后,当用户提问时不会对该文档下的分段内容进行查询。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/1047c7ec-a6e8-4f09-b08e-c819467c2426) - **上传文档** ``` 点击【上传文档】进入上传文档页面,通过文件拖拽或选择文件上传方式进行上传文档。 ``` ![upload-doc](https://github.com/1Panel-dev/MaxKB/assets/52996290/464e9d57-3298-479a-ba2d-68e48161d869) ``` 点击下一步进入【设置分段规则】,可以对上传文档选择分段规则,默认为智能分段。分段规则变更后需要点击【生成预览】,分段预览中将按照最新规则进行分段展示。 ``` ![Segmentation rules](https://github.com/1Panel-dev/MaxKB/assets/52996290/0beb60aa-259c-4f8d-9443-894395675b7c) ``` 点击【开始导入】后,系统会对文档进行自动分段 -> 存储 -> 向量化处理操作。 ``` - **命中处理方式设置** ``` 支持设置文档的命中处理方式。 直接返回:指提问时命中该文档下面的分段后,会直接返回分段内容。(注意:分段标题不返回)建议分段内容比较精准的使用该方式。 模型优化:指提问时命中该文档下面的分段后,会按照应用的提示词生成 prompt 发送给模型优化后返回答案。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/4da78400-479b-4604-8692-8b948b4f6225) ### 2.1.5.2 Web 站点知识库文档 ``` 在知识库列表点击【知识库面板】,进入Web站点知识库的【文档】页面。 ``` ![web_doc](https://github.com/1Panel-dev/MaxKB/assets/52996290/4a85948b-676c-487f-9e9b-0f2337bc1d51) - **导入文档** ``` 支持单独导入在线文档,点击【导入文档】打开对话框,需要用户输入文档链接和选择器,支持同时导入多个文档,输入文档地址时一行一个。 ``` upload-web-doc - **同步知识库** ``` 支持对Web站点知识库进行同步更新操作,同步方式分为替换同步和完全同步。 替换同步:重新获取 Web站点文档,替换本地知识库中地址相同的文档。 整体同步:先删除本地知识库中所有文档,重新获取 Web站点下的文档数据。 ``` sysn_dataset - **启用/禁用** ``` 文档禁用后,当用户提问时不会系统不会检索该文档下的分段内容,只有启用后系统才会检索。 ``` - **同步文档** ``` 支持对文档进行单独同步和批量同步操作,同步时会先删除当前文档下的所有分段,重新获取文档地址的文本数据。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/98ccae91-3071-4a89-b818-800e093b1c0c) - **文档设置** ``` 支持对文档的地址和选择器进行修改操作。 支持设置文档的命中处理方式。 直接返回:指提问时命中该文档下面的分段后,会直接返回分段内容。(注意:分段标题不返回)建议分段内容比较精准的使用该方式。 模型优化:指提问时命中该文档下面的分段后,会按照应用的提示词生成 prompt 发送给模型优化后返回答案。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/b78a4a0f-f436-45a5-ae2b-a9173af96f47) - **文档删除** ``` 支持对文档进行单独删除和批量删除操作。 ``` doc-del ## 2.1.6 分段管理 ``` 导入文档后,系统会进行智能分段操作,点击文档列表中的文档记录,进入到文档的分段管理页面。 分段管理功能支持对添加、编辑、删除、启用/禁用分段以及为分段添加关联问题。 说明: 分段禁用后,当用户提问时不会匹配禁用的分段。 ``` ![Segmentation management](https://github.com/1Panel-dev/MaxKB/assets/52996290/c1c352d0-f822-4541-834a-649ba02c9566) **添加分段** ``` 点击【添加分段】,弹出添加分段对话框,用户需填写分段标题、分段内容(支持 markdown 样式编辑分段内容。)和关联问题,点击【提交】后则新增一个分段。 建议:为了能准确匹配到分段,建议为分段设置关联问题。(当用户提问时系统会优先匹配关联问题,再映射到分段。) ``` add-Segmentation **编辑分段** ``` 点击【分段面板】,打开分段详情,在分段详情页面可以对分段进行编辑和关联问题操作。 ``` Edit-Segmentation **删除分段** ``` 在分段面板中可以对分段进行删除操作。 ``` Del-Segmentation ## 2.1.7 问题 ``` 支持问题管理,维护知识库的用户可以收集用户可能提出的相关问题添加到问题库中进行维护。并将问题关联文档中的知识点,提高问答的准确度。 问题按知识库进行分类管理,当前知识库的问题仅能关联当前知识库中的分段内容。 问题不可重复添加。 ``` image ### 2.1.7.1 创建问题 ``` 用户可以快速创建单个问题,也可以批量创建多个问题。 ``` image ### 2.1.7.2 问题关联分段 ``` 问题添加完成后,可以关联文档中的分段,当用户提问时会优先匹配问题库来查询相关的分段。 ``` image ### 2.1.7.3 问题详情 ``` 点击问题记录可以打开问题详情,查看问题关联的分段内容,支持对分段内容进行修改或取消关联关系。 ``` image ## 2.1.8 命中测试 ``` 命中测试功能是针对用户提问进行一个模拟测试,用来调整分段内容和关联问题从而提高分段内容的匹配度,提高回答效果。 点击命中测试,输入用户测试问题,系统在当前知识库中按照检索模式检索相关的分段,并按照相似度返回Top K分段。 用户可以根据返回分段对分段进行编辑或添加关联问题。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/986c02c5-d071-46f5-82a3-f5a1a2854a74) ### 2.1.8.1 参数设置 ``` 当前支持向量检索、全文检索和混合检索 3 种检索模式。 向量检索:使用向量模型通过向量距离计算与用户问题最相似的文本分段。 全文检索:通过关键词检索,返回包含关键词最多的文本分段。 混合检索:同时执行全文检索和向量检索,再进行重排序,从两类查询结果中选择匹配用户问题的最佳结果。 相似度:相似度越高代表问题和分段的相关性越强。 返回分段数 top : 返回符合条件的 Top N 个分段。 ``` ![image](https://github.com/1Panel-dev/MaxKB/assets/52996290/bb06bf19-2e87-4d87-a49a-9d8e3014159b)