企业知识库

企业知识库是组织内部的一个集中存储和管理信息、知识的工具,帮助企业有效地组织、存储、检索和分享各种类型的信息和知识资源,为企业特定场景AI应用提供了基础。通过文件切片、向量化技术、语义检索等,可以有效地处理和利用企业内部的大量数据,不仅能够提高大模型在特定任务上的表现,还能大幅降低计算资源的消耗,提升数据处理的效率和准确性。

在企业应用中,通过挂载私有知识库来扩充大模型的知识储备(挂载是通过检索增强生成技术/RAG实现的,借助于在大模型输入时携带相关的私有知识上下文,让大模型理解、总结、整理并回答用户问题,使得大型语言模型在实际应用中变得更加实用和可信),以提供基于自然语言的、对话式的企业私有知识访问,解决通用大模型在面向企业应用时领域知识不足导致的幻觉问题。挂载企业知识库后,将企业知识库文档和数据,通过向量特征提取(embedding)后,存储到向量数据库(vector database),应用LLM大语言模型与向量化的知识库检索和比对知识,构建智能应用。您可以在我的工作台-AI应用-应用编排时选择挂载企业知识库,便于AI应用基于知识库文件进行问答(详见:创建AI应用)。

我的工作台-企业知识库展示所有您创建的知识库和知识目录,及其关联的应用数量。点击右上角“创建企业知识库”按钮,可以创建新的企业知识库,创建成功的企业知识库,会在我的工作台-企业知识库展示。

创建企业知识库

原理简介

创建企业知识库的核心原理,在于文本分段与清洗:

  • 分段设置:即对知识库的知识进行切片,可选择自动分段或自定义分段(自由选择分片器类型,并支持按需设置规则参数)。

    1. 自动分段与清洗:
      • 本地非结构化文档:采用递归字符文本分割器,分段最大长度500,分段重合字符数10。
      • 表格:采用\n分段模式,每行数据会单独保存为一个切片。
      • 问答集:采用Q&A分段模式。
      • Web站点:采用递归字符文本分割器,分段最大长度500,分段重合字符数10。
    2. 自定义-ChineseRecursiveTextSplitter:中文递归字符文本分割器,在RecursiveCharacterTextSplitter的基础上做了中文标点符号的识别,首先会将文本按照"\n\n"进行切分,如果生成的块过大则依次按照"\n"、"。|!|?"、".\s|!\s|?\s"、";|;\s"、",|,\s"进行切分,若最后的文本还是过大则按照设置的chunk_size进行截断。
    3. 自定义-RecursiveCharacterTextSplitter:递归字符文本分割器,常常被推荐用于拆分普通文本,基于一个字符列表(这些字符作为文本中的分隔符或“分割点”使用),尝试通过依次按照列表中列出的顺序(默认的字符列表是 ["\n\n", "\n", " ", ""])进行拆分来创建文本块,直到生成的块达到可管理的大小为止。首先尝试在每个双换行符 ("\n\n") 处拆分文本,这通常用于分隔文本中的段落;如果生成的块过大,它接着尝试在每个换行符 ("\n") 处拆分,这通常用于分隔句子;如果块仍然过大,它最后尝试在每个空格 (" ") 处拆分,这用于分隔单词;如果块仍然过大,它会在每个字符 ("") 处拆分。这种方法尽量保留了语义上下文,通过保持段落、句子和单词的完整性,对于许多自然语言处理任务是有益的。
    4. 自定义-MarkdownHeaderTextSplitter:md标题文本分割器,根据Markdown 文件的标题结构来对文本进行分块,这种方法可以确保具有相同上下文的文本被分组在一起,从而在Embedding等阶段获得更全面的向量表示。
    5. 自定义-ChineseTextSplitter:中文文本分割器,对中文文本进行分句处理,继承自CharacterTextSplitter,主要增强了中文标点符号的识别,包括[;;.!?。!??]、中英文的省略号、中英文的单引号双引号等。
    6. 自定义-TableOfContentsTextSplitter:目录文本分割器,将文本按照目录结构进行切分,能够将长文档按照目录标题的出现位置,将文档分割成多个部分,每个部分包含从第一次出现目录标题到下一次相同目录标题出现之间的内容,这种分割方式保留了文档的结构,使得分割后的各部分保持原有的章节或主题结构。
    7. 自定义-AutoMergingTextSplitter:自动合并文本分割器,按照三级切分尺寸[2048,512,128]将文档先按照2048进行第一次切分并当作n个根节点,再按照512对根节点进行二次切分并当作子节点,再按照128对子节点进行第三次切分并当作叶子节点,每个节点保存了自己的id及父节点的id,方便在检索时进行节点合并。
  • 索引方式:Embedding过程是将非结构化的数据编码为向量,将企业的知识和信息转化为计算机能够理解的向量形式,就像将一本书的内容编码成图书馆的索引卡片,使得信息可以被快速检索。

    1. 高质量:调用微软|Azure-GPT-3.5 的嵌入接口进行处理(需要部署微软|Azure-GPT-3.5模型,方可使用该索引方式),以在用户查询时提供更高的准确率。
    2. 经济:使用离线的向量引擎/关键词索引等方式,会对准确度有一定损耗。
  • 向量数据库:主要作用是存储和处理向量数据,并提供高效的向量检索功能。

    1. Milvus:涵盖如Faiss、Annoy和hnswlib等主流第三方索引库,性能高,支持对海量向量数据进行相似搜索,支持使用Kubernetes部署,支持在云上扩展。例如,如果需要一个易于扩展、稳定高效且支持多种索引方式的向量数据库,那么Milvus可能是一个更好的选择。
    2. Faiss:一款适用于稠密向量匹配的开源库,支持c++与python调用,支持多种向量检索方式,包括内积、欧氏距离等,同时支持精确检索与模糊搜索。
  • 元数据:非必选项,您可以按需选择(目前支持句子窗口)。

    1. 句子窗口:通常指的是文本数据中一个固定大小的句子子集,可以指定句子窗口的大小,以便在处理文本数据时,每次只处理一定数量的句子,这对于批处理、内存管理等方面非常有用。
    2. 摘要:一种简洁的文本表示,旨在捕获原始文本的主要内容和关键信息。
    3. 标签:与文本数据相关联,用于标记或分类文本内容。
    4. 自动生成问题:自动生成与文本内容相关的问题。

操作指南

image-3

  1. 开始:进入“我的工作台-企业知识库”,点击右上角的“创建企业知识库"按钮,进入”创建企业知识库“弹窗页面。

    image_17229244754213

  2. 填写企业知识库信息:填写知识库名称及描述,点击“确认”按钮,开始创建企业知识库。

    image_17229251611047

  3. 添加文件:填写完企业知识库信息并点击“确认”后,进入知识库详情页面,点击“添加文件”即可添加。

    image_17229252845076

    企业知识库支持添加4种类型的文件:本地非结构化文档、本地表格、本地问答集、同步自Web站点。

    • 上传本地非结构化文档:通过拖拽文件或选择文件,上传符合格式和大小要求的知识库文件。

      image_17229260121744

    • 上传表格:通过拖拽文件或选择文件,上传符合格式和大小要求的知识库文件。

      image_17229260983225

    • 上传本地问答集:您可以通过拖拽文件或选择文件,上传符合格式和大小要求的知识库文件(可下载模板后,按照模板编辑后再上传);也可以点击“同步问答集API”,通过API同步的方式导入;还可以直接点击“创建一个空问答集”,填写问答集名称后点击“确定”完成创建(支持创建多个),便于后续在空问答集中直接添加分段信息。

      image_17229263238889

      image_17229264418201

      image_17229264867963

    • 同步自Web站点:需填写网页链接、设置自动刷新频率、并进行数据提取,方可完成此类型的文件添加。

      image_17229265692570

  4. 文本分段并清洗:完成文件添加后,点击“下一步”,进入“文本分段并清洗”页面进行分段、索引方式、向量数据库、元数据设置(其中,对于各类型的文件,分段设置可进行差异化设置,索引方式、向量数据库、元数据为同样的设置),按需完成设置后点击“保存并处理”,即完成了该知识库的创建。此外,在页面右侧可以进行分段预览,便于您及时调整设置。

    以本地非结构化文档为例:

    • 上传文件(支持批量上传),点击“下一步”,按需完成文本分段并清洗设置。

      image_17229266511379

      image_1722926957957

      image_17229270641639

    • 添加成功并完成分段清洗设置的文件,会在该知识库详情页展示,并支持对文件进行设置调整、下载、删除。

      image_17229312563921

  5. 命中测试:在知识库详情-命中测试,可以输入查询文本进行命中效果测试。

    image_17229318128547

  6. 编辑修改:您可以在知识库详情页,对知识库进行修改、删除、设置等操作。

    • 添加文件:如需为某知识库添加更多的文件,在知识库详情页点击“添加文件”,进行文件添加、文本分段并清洗即可。

      image_17229329693129

    • 修改删除:您可以对知识库中的文件,进行文件预览、可用/禁用设置、文本分段并清洗设置、分段查看、文件下载、文件删除等操作。

      image_17229331995736

      其中,对于问答集类型的文件(含空问答集),点击“查看分段”图标,进入分段信息页面,点击“添加分段”即可进行分段添加,并支持在ANSWER中添加图片、视频等富文本信息。对于已添加的分段,支持进行分段编辑、启用/禁用设置、分段移动(可一键移动至其他知识库)、分段删除等操作。

      image_17229333159395

      image_17229338532324

      image_17229339533572

      image_17229341635106

    • 基础设置:您可以在知识库详情-基础设置中,修改知识库名称、知识库描述、索引方式、向量数据库、元数据,修改后所有该知识库的文件都会按此设置执行。

      image_17229342322723

    • 权限设置:您可以在知识库详情-权限设置中设置使用权限,支持设置公开、内部、私有三种权限,按需授权可访问的用户即可。配置知识库权限后,AI仅对拥有权限的角色回答与该知识库相关的问题,若角色未获得相应权限,AI将不会提供相关回答。

      image_17229343427194

创建知识目录

知识目录是企业知识库的集合,是一个结构化的知识组织方式,按照特定的主题或分类将知识进行整理和归类,使得用户可以通过知识目录更加便捷地查找和获取所需的知识资源。

如您的知识资源较多或覆盖了多种主题,您可以先在我的工作台-企业知识库,创建知识目录,之后在此知识目录下创建知识库。创建成功的知识目录,会在我的工作台-企业知识库展示。

操作指南

image-4

  1. 开始:进入“我的工作台-企业知识库”,点击右上角的“创建知识目录"按钮,进入”创建知识目录“弹窗页面。

    image_17229344273742

  2. 填写知识目录信息:填写知识目录名称及描述,点击“确认”按钮,开始创建知识目录。

    image_17229351012313

  3. 创建企业知识库:填写完知识目录信息并点击“确认”后,进入知识库目录详情页面,点击“创建企业知识库”即可(操作流程同直接创建企业知识库)。

    image_17229351928479

  4. 编辑修改:在知识库目录详情页,您可以点击“基础设置”Tab,对知识目录的名称和描述进行修改。

    image_17229352685916

  5. 权限设置:您可以在知识库目录详情-权限设置中设置使用权限,支持设置公开、内部、私有三种权限,按需授权可访问的用户即可。配置权限后,AI仅对拥有权限的角色回答与该知识库目录相关的问题,若角色未获得相应权限,AI将不会提供相关回答。

    image_17229355175990