产品教程:知识库管理

简介

Newtera IntraMind是企业用于系统化存储、管理和共享内部知识的知识库平台。本教程主要介绍如何存储和管理企业的知识,为知识共享奠定良好的基础。企业对知识的存储和管理有特殊的需求,例如对知识的组织,分类和权限控制的要求。本教程将针对企业文档存储和管理进行介绍。主要内容有以下几个方面。

  • 文档分类:根据企业的业务特点,创建文档分类树,对上传到知识库的文档进行分类。
  • 文档分块及检索:对上传到知识库的文档进行文本分块并进行RAG检索测试。
  • 文档权限控制:对分类树的各级节点设置基于角色的权限控制,确保文档的访问权限合规。

文档分类

企业的文档资料数量众多。必须对文档进行分库和分类管理。这样既能使得各个专业部门各司其职,又能提升知识检索的精确度。例如,在我们提供的演示模型里,我们根据专业对文档进行分库设置,一个是“整车试验文档库”,另一个是“发动机试验文档库”。因为不同专业对文档的分类方式不同,需要创建不同的分类树。

建库的过程需要使用一个专用客户端工具配置,我们会在另一个教程详细介绍。本教程将介绍如何创建符合业务要求的分类树的步骤。

为了您方便学习教程,我们先介绍几个IntraMind产品使用的术语:

  • 文档库:企业文档的存储单元。通常一个文档库对应一个专业。
  • 分类树:对文档库中的文档进行多层次分类。每个文档库对应一个分类树。
  • 分类节点:分类树中的节点。每个分类节点可以有零到一个父节点和零到多个子节点。分类节点用于对文档分类并作为文档的标签。
  • 文档包:作为文档的组织单位,包含一到多个具有相同元数据的文档。文档包通常归属于某个分类叶节点。
  • 文档:非结构化的文档,包括文本,Word和PDF等。

登录到Web客户端

打开浏览器(推荐Chrome)并在地址栏输入URL(http://localhost:8080)。在登录界面输入系统管理员的用户名和密码,也就是用户名demo1;密码:888。

提示:在默认设置下,创建分类树和设置访问权限的工作需要由具有系统管理员角色的用户操作。也可以将这个权限赋予各个专业指定某个角色。

选择一个文档库

登录为系统管理员后,在左侧的导航栏中有已经预先创建的文档库(文档库的创建请参看相关教程)。假设我们需要在“整车试验文档库”中添加文档知识,则需要鼠标点击“整车试验文档库”菜单项(见下图)。

broken image

选择文档库后,在右边的界面会展示该文档库的分类树以及允许访问的所有文档包。点击分类树的某个分类节点,界面将显示属于该节点的文档包列表。

创建新的分类节点

假设我们需要上传一个乘用车道路试验的文档。当前的分类树中没有相应的分类节点。我们可以创建一个新的分类节点,称为“道路试验”。我们需要首先选择一个分类节点作为父节点,例如,“试验目的”。鼠标右键选择“试验目的”弹出上下文菜单,从中选择“添加子节点”(见下图)。

broken image

在弹出的分类节点表单中填写名称为“道路试验”(见下图)。

broken image

随后点击右下方的提交按键。值得注意的是,分类节点的名称在当前分类树中应不存在重名的节点。如提交的名称为重名,则会报错,否则会显示提交成功。点击右下方的“关闭”按键。界面的分类树会自动刷新,显示添加的节点(见下图)。

broken image

创建文档包及上传文档

由于“道路试验”节点是新创建的节点,点击该分类节点后,右边的列表为空。我们首先需要创建一个文档包。文档包类似于文件夹,它提供了所包含文档的各种元数据,例如,包的名称,所属各级分类节点和其它标注等。这些元数据会为文档的精确查询提供了帮助。

点击右边列表右上方的“添加”按键,弹出文档包信息表单(见下图)。

broken image

弹出的表单中已经默认填写了文档包隶属的各级分类节点的名称,您只需填写“文档包说明”的字段。填写完成后,点击表单右下方的“提交”按键,在知识库中创建该文档包记录。

创建了文档包成功后,表单中就出现的上传文档控件。点击控件的上传区域,从本机文件系统选择一个或多个需要上传的文件,点击控件右下方的“上传”按键。上传的文档便出现在文档包的文档列表中(见下图)。完成文档上传后,点击表单右下方的“关闭”按键来关闭表单。

broken image

这时点击分类树的“道路试验”节点,则在右边列表中显示刚才创建的文档包。您可以继续添加新的文档包或编辑已存在的文档包。鼠标选择需要进行编辑的文档包行,在所选的行下方会出现相应的命令按键(见下图)。点击“编辑”按键打开该文档包的表单进行修改,添加或删除文档。

broken image

文档的分块及发布

Newtera IntraMind使用语言大模型+RAG技术来实现知识的检索和共享。RAG技术是将文档中的文本进行分块(Chunking),将分块的文本转换为矢量,并与元数据一起存储到矢量数据库中。当用户使用聊天助手提交问题时,聊天助手首先将用户的问题转换为矢量,再与矢量数据库中存储的文档分块矢量进行语义匹配,而后将匹配的文本分块与用户的提问一起作为输入提交给语言大模型(LLM),最后由大模型返回对问题的回答。

因而,我们需要对之前上传的文档进行分块处理,转换为矢量,并发布到矢量数据库中。下面,我们介绍这一过程。

首先,选择一个文档包。例如,我们就选择“道路试验”分类节点下的文档包。点击文档包行下面的“文档管理”按键(见下图)。

broken image

界面进入文档分块设置页面。您在这个页面可以分块设置,预览分块文本,测试分块的效果,并将最终确定的分块发布到矢量数据库中。

系统目前默认的分块策略为“固定大小分块”,以后会陆续提供其它分块策略。分块大小(Chunking Size)和分块重叠(Overlap)都提供了默认值。您可以修改这两个参数,并点击右下方的“预览”按键来预览分块的效果(见下图)。

broken image

分块的参数设置会对最终的问题的检索和问答产生影响。因而,在您将文档分块发布到矢量数据库之前可以进行问答测试,检验分块的效果并进行调整。点击右下方的“测试”按键,并在弹出聊天对话框进行测试(见下图)。

broken image

文本分块的设置满足要求后,便可以将其发布到矢量数据库中。点击右下方的“发布”按键进行发布。发布完成后,发布状态会显示“已发布”(见下图)。发布后文档,还可以修改设置后重新发布。过程相同。

broken image

使用“知识助手”测试

完成了上述创建分类树节点以及发布文档步骤后,可以按照以下步骤使用“知识助手”工具进行测试。

选择左边导航栏的“知识助手”进入与知识助手聊天页面(见下图)。知识助手会引导我们进行文档搜索和知识问答的过程。

broken image

知识助手在这一步提供了两个选项。因为我们要测试知识库中的文档,选择“查询知识库”。下一步,知识助手提供了两个文档库(见下图),“整车试验文档库”和“发动机试验文档库”。我们之前是将文档发布到“整车试验文档库”中,选择“整车试验文档库”。

broken image

根据“整车试验文档库”的分类树设置,知识助手呈现了“整车试验文档库”分类树的一级分类节点供我们选择(见下图)。

broken image

由于我们之前创建的“道路试验”分类节点属于“试验目的”节点的子节点,因而,我们选择“试验目的”选项。知识助手便进一步呈现了“试验目的”节点的所有用户有权限访问的选项(见下图)。

broken image

我们在前面步骤中创建的“道路试验”分类节点会出现在选项列表中。选择“道路试验”选项后,知识助手会获取并显示该分类节点下所有文档供我们确认(见下图)。

broken image

确定了文档的范围后,我们就可以向知识助手问问题了。知识助手会根据搜索范围内的文档所涵盖的知识来回答我们的问题。例如,我们可以向助手提问,“试验车辆的准备”。以下是它的回答(见下图)。

broken image

文档权限控制设置

企业知识库中的权限管理是确保公司内部信息安全与资源高效利用的关键。Newtera IntraMind提供了基于角色的细颗粒度的权限控制功能,能很好地满足企业对信息安全的需求。

每个企业具有不同的组织结构和各种角色。知识库项目实施过程的一个环节是按照企业的需求在Newtera IntraMind平台中设置部门,角色和用户。并赋予每个用户相应的部门和角色。为后续的权限控制设置奠定基础。我们将在专门的教程中介绍如何设置部门和角色,以及创建用户并赋予用户角色。在本教程中,我们将使用演示模型中设置好的用户及部门角色来展示如何对文档设置权限控制。

Newtera IntraMind提供了多种权限控制的设置方法。最简单的方法是基于文档库的分类树的权限控制设置。基于分类树的权限控制应遵循访问权限上宽下严的原则。举个例子,分类树的根节点好比一个企业的厂区,任何企业的员工都可以自由进出;分类树的二级节点好比企业中的各个部门的办公室,有的部门只允许该部门的员工进出,比如试验中心;分类树的三级节点好比部门里的某个科室或试验室,有的试验室只允许特定角色的员工进出。下面,我们用一个例子来描述如何在分类树结构上设置一个权限控制的过程。

首先,打开浏览器(推荐Chrome)并在地址栏输入URL(http://localhost:8080)。在登录界面输入系统管理员的用户名(demo1)和密码(888)。

设置文档库的访问权限

在左边的导航栏选择一个文档库进行权限设置。例如,选择“整车试验文档库”。在右边的分类树中,右键选择根节点,“汽车试验分类”,从弹出的上下文菜单中选择“权限控制”菜单项,弹出“权限设置”对话框(见下图)。给对话框中显示了系统所具有的部门和职务,统称角色。

broken image

如果我们的需求是允许所有的用户访问改文档库的信息,只要选择“所有人”选项(默认设置),并保存这个设置即可。假设,我们只允许“试验中心”的用户访问该文档库,这需要选择“具有勾选角色的用户”的选项,并勾选“试验中心”角色(见下图)。点击“保存”即可。

broken image

设置分类节点文档的访问权限

假设,业务要求是只允许具有“试验中心”和“产品实验室”角色的用户访问“动力驱动类型”分类节点下的文档。从右键点击“动力驱动类型”分类节点的菜单中选择“权限控制”,并在“权限设置”对话框中勾选“产品试验室”角色(见下图)。值得指出的是,由于上一级分类节点选择了“具有勾选角色的用户”的选项,下一级分类节点就不允许选择“所有人”的选项。另外,上一级节点勾选的角色会被继承下来,并不允许被非选。只允许增加新的角色。

broken image

我们还可以在子分类节点上进一步收缩访问权限。假设,业务要求只有具有“试验中心”,“产品试验室”,且具有“试验室经理”职务的用户才能访问“传统燃油车试验”分类节点下的文档。只要将“传统燃油车试验”节点的权限设置为下图所示即可。

broken image

以上权限设置完成后,我们可以测试一下。首先,我们退出登录,再登录为具有“试验室经理”角色的用户(用户名:demo2;密码:888)。点击“整车试验文档库”分类树的“汽车试验分类”,“动力驱动类型”,和“传统燃油车试验”节点,该用户可以访问到所有的文档。

接下来,我们退出登录,再登录为具有“试验员”角色的用户(用户名:demo3;密码:888)。点击“整车试验文档库”分类树的“汽车试验分类”,“动力驱动类型”,和“传统燃油车试验”节点,可以发现该用户可以访问除了“传统燃油车试验”节点之外的所有的文档。

此外,用户在使用“知识助手”与知识库交互过程中,“知识助手”会根据当前用户的角色和分类树所设置的权限控制规则来决定该用户对文档的访问权限。如果我们登录为具有“试验员”角色的用户(用户名:demo3;密码:888)。根据权限设置,我们将不能访问“道路试验”节点下的所有文档。因而,当我们使用“知识助手”进行交互时,在我们选择“整车试验文档库”的“试验目的”分类选项时,知识助手就不会呈现“道路试验”这个选项(见下图)。因此,非“试验室经理”角色的用户就无法访问“道路试验”相关的文档。

broken image