Skip to main content
Version: DEV

配置知识库

知识库、无幻觉聊天和文件管理是RAGFlow的三大支柱。RAGFlow的AI聊天基于知识库。RAGFlow的每个知识库都作为一个知识源,解析从本地机器上传的文件和在文件管理中生成的文件引用,将其转化为未来AI聊天所需的真实“知识”。本指南展示了知识库功能的一些基本用法,涵盖以下主题:

  • 创建一个知识库
  • 配置知识库
  • 搜索知识库
  • 删除一个知识库

创建知识库

通过多个知识库,您可以构建更灵活、多样化的问题解答。要创建您的第一个知识库:

create knowledge base

每次创建一个知识库时,都会在root/.knowledgebase目录下生成一个同名的文件夹。

配置知识库

以下截图显示了一个知识库的配置页面。正确配置您的知识库对于未来的AI聊天至关重要。例如,选择错误的嵌入模型或分块方法可能会导致聊天中出现意外的语义丢失或不匹配的答案。

knowledge base configuration

本节涵盖以下主题:

  • 选择分块方法
  • 选择嵌入模型
  • 上传文件
  • 解析文件
  • 干预文件解析结果
  • 运行检索测试

选择分块方法

RAGFlow 提供了多种分块模板,以便于对不同布局的文件进行分块并确保语义完整性。在分块方法中,您可以选择适合您文件布局和格式的默认模板。下表显示了每个支持的分块模板的描述和兼容的文件格式:

模板描述文件格式
通用文件根据预设的块令牌数连续分块。DOCX, EXCEL, PPT, PDF, TXT, JPEG, JPG, PNG, TIF, GIF
问答EXCEL, CSV/TXT
手册PDF
表格EXCEL, CSV/TXT
论文PDF
书籍DOCX, PDF, TXT
法律DOCX, PDF, TXT
演示文稿PDF, PPTX
图片JPEG, JPG, PNG, TIF, GIF
整个文档被分块为一个。DOCX, EXCEL, PDF, TXT

你也可以在数据集页面上更改特定文件的块模板。

change chunk method

选择嵌入模型

嵌入模型将数据块转换为嵌入。一旦知识库中有数据块,就不能更改嵌入模型。要切换到不同的嵌入模型,必须删除知识库中所有现有的数据块。显而易见的原因是,我们必须确保特定知识库中的文件使用相同的嵌入模型转换为嵌入(确保它们在相同的嵌入空间中进行比较)。

以下嵌入模型可以在本地部署:

  • BAAI/bge-large-zh-v1.5
  • BAAI/bge-base-en-v1.5
  • BAAI/bge-large-en-v1.5
  • BAAI/bge-small-en-v1.5
  • BAAI/bge-small-zh-v1.5
  • jinaai/jina-embeddings-v2-base-en
  • jinaai/jina-embeddings-v2-small-en
  • nomic-ai/nomic-embed-text-v1.5
  • sentence-transformers/all-MiniLM-L6-v2
  • maidalun1020/bce-embedding-base_v1

上传文件

  • RAGFlow的文件管理功能允许您将文件链接到多个知识库,在这种情况下,每个目标知识库都持有对该文件的引用。
  • 知识库中,您还可以选择从本地计算机上传单个文件或文件夹(批量上传)到知识库,在这种情况下,知识库会保存文件的副本。

虽然直接将文件上传到知识库似乎更方便,但我们强烈建议将文件上传到文件管理,然后将它们链接到目标知识库。这样,您可以避免永久删除上传到知识库的文件。

解析文件

文件解析是知识库配置中的一个关键主题。在RAGFlow中,文件解析的含义有两个方面:基于文件布局对文件进行分块,并在这些块上构建嵌入和全文(关键词)索引。在选择分块方法和嵌入模型后,您可以开始解析文件:

parse file

  • 点击UNSTART旁边的播放按钮以开始文件解析。
  • 如果文件解析长时间停滞,请点击红色十字图标然后刷新。
  • 如上所示,RAGFlow 允许您为特定文件使用不同的分块方法,提供了超越默认方法的灵活性。
  • 如上所示,RAGFlow 允许您启用或禁用单个文件,从而提供对基于知识库的 AI 聊天的更精细控制。

干预文件解析结果

RAGFlow 具有可见性和可解释性,允许您查看分块结果并在必要时进行干预。为此:

  1. 点击完成文件解析的文件以查看分块结果:

    您被带到Chunk页面:

    chunks

  2. 将鼠标悬停在每个快照上以快速查看每个块。

  3. 双击分块文本以添加关键字或在必要时进行手动更改:

    update chunk

NOTE

您可以向文件块添加关键字,以增加其在包含这些关键字的查询中的排名。此操作会增加其关键字权重,并可以改善其在搜索列表中的位置。

  1. 在检索测试中,在测试文本中提出一个快速问题,以双重检查您的配置是否有效:

    从以下内容可以看出,RAGFlow 提供了真实的引用。

    retrieval test

运行检索测试

RAGFlow 在其聊天中使用了全文搜索和向量搜索的多重召回。在设置 AI 聊天之前,请考虑调整以下参数,以确保所需信息始终出现在答案中:

  • 相似度阈值:相似度低于阈值的块将被过滤。默认设置为0.2。
  • 向量相似度权重:向量相似度对总分的贡献百分比。默认设置为0.3。

retrieval test

搜索知识库

截至RAGFlow v0.15.1版本,搜索功能仍处于初级阶段,仅支持按名称搜索知识库。

search knowledge base

删除知识库

您可以删除一个知识库。将鼠标悬停在目标知识库卡片的三点上,删除选项就会出现。一旦您删除了一个知识库,root/.knowledge目录下的相关文件夹将自动被移除。后果是:

  • 直接上传到知识库的文件不见了;
  • 您在文件管理中创建的文件引用已消失,但关联的文件仍然存在于文件管理中。

delete knowledge base