跳到主要内容

构建知识图谱 (Construct knowledge graph)

为你的数据集 (Dataset) 生成知识图谱 (Knowledge Graph)。


为了增强多跳问答 (Multi-hop Question-Answering) 能力,RAGFlow 在数据提取和索引之间增加了一个知识图谱构建步骤,如下图所示。该步骤根据你指定的分块方法所生成的现有文本块 (Chunk),创建出额外的文本块。

知识图谱构建架构图

从 v0.16.0 版本开始,RAGFlow 支持在数据集上构建知识图谱,允许你在数据集内的多个文件之间构建一个统一的图谱。当新上传的文件开始解析时,生成的图谱将自动更新。

警告 (WARNING)

构建知识图谱需要大量的内存、计算资源和大语言模型 (LLM) 的 Token。

适用场景 (Scenarios)

知识图谱在涉及嵌套逻辑的多跳问答中特别有用。当你对包含复杂实体和关系的图书或包含大量实体关系的研究著作进行问答时,它们的表现要显著优于传统的检索召回方法。

注意 (NOTE)

RAPTOR (树状组织检索的递归抽象处理) 也可以用于多跳问答任务。详情请参阅 启用 RAPTOR。你可以使用其中一种方法或同时使用两种方法,但请确保你了解其中涉及的内存、计算和 Token 成本。

前提条件 (Prerequisites)

系统的默认聊天模型用于生成知识图谱。在继续之前,请确保你已正确配置了聊天模型 (Chat Model):

设置默认模型

参数配置 (Configurations)

实体类型 (Entity types) (必填)

要从数据集中提取的实体类型。默认类型为:组织 (organization)人物 (person)事件 (event)类别 (category)。你可以添加或删除类型以适应你的特定数据集。

构建方法 (Method)

用于构建知识图谱的方法:

  • 通用 (General):使用 GraphRAG 提供的提示词 (Prompts) 来提取实体和关系。
  • 轻量 (Light):(默认)使用 LightRAG 提供的提示词来提取实体和关系。该选项消耗更少的 Token、更少的内存以及更少的计算资源。

实体对齐 (Entity resolution)

是否启用实体对齐。你可以将其视为实体去重开关。启用后,大语言模型 (LLM) 会将相似的实体(例如“2025”和“2025年”,或“IT”和“信息技术”)进行合并,以构建更有效的图谱。

  • (默认)禁用实体对齐。
  • 启用实体对齐。该选项会消耗更多的 Token。

社区报告 (Community reports)

在知识图谱中,社区是一组通过关系连接在一起的实体集群。你可以让 LLM 为每个社区生成一个摘要,即社区报告。有关更多信息,请参阅此处。此参数指示是否生成社区报告:

  • 生成社区报告。该选项会消耗更多的 Token。
  • (默认)不生成社区报告。

快速开始 (Quickstart)

  1. 导航到数据集的 配置 (Configuration) 页面并更新:

    • 实体类型 (Entity types)必填 - 指定要在知识图谱中生成的实体类型。你无需拘泥于默认值,而应该根据你的文档进行自定义。
    • 构建方法 (Method)可选
    • 实体对齐 (Entity resolution)可选
    • 社区报告 (Community reports)可选 你数据集的默认知识图谱配置现已设置完成。
  2. 导航到数据集的 文件 (Files) 页面,点击页面右上角的 生成 (Generate) 按钮,然后从下拉菜单中选择 知识图谱 (Knowledge graph) 以启动知识图谱生成过程。

    如果需要,你可以点击下拉菜单中的暂停按钮以中止构建过程。

  3. 返回 配置 (Configuration) 页面:

    一旦生成了知识图谱,知识图谱 (Knowledge graph) 字段将从 未生成 (Not generated) 变更为 已在特定时间戳生成 (Generated at a specific timestamp)。你可以通过点击该字段右侧的垃圾桶按钮来删除它。

  4. 要使用已创建的知识图谱,请执行以下任一操作:

    • 在聊天应用的 聊天设置 (Chat setting) 面板中,开启 使用知识图谱 (Use knowledge graph) 开关。
    • 如果你使用的是智能体 (Agent),请点击 检索 (Retrieval) 智能体组件以指定数据集,并开启 使用知识图谱 (Use knowledge graph) 开关。

常见问题 (Frequently asked questions)

当我删除相关文件时,知识图谱会自动更新吗?

不会。在为你数据集重新生成知识图谱之前,知识图谱是不会自动更新的。

如何删除已生成的知识图谱?

在数据集 (Dataset) 的 配置 (Configuration) 页面上,找到 知识图谱 (Knowledge graph) 字段,然后点击该字段右侧的垃圾桶按钮。

创建好的知识图谱存储在哪里?

创建好的知识图谱的所有分块都存储在 RAGFlow 的文档引擎中:可以是 Elasticsearch 或 Infinity

如何导出创建好的知识图谱?

目前不支持导出创建好的知识图谱。如果你认为此功能不可或缺,请提交一个 Issue,说明你的使用场景和重要性。