GraphRAG

更新时间:
复制为 MD 格式

本文介绍知识平台的GraphRAG功能,包括知识库管理、文档处理、知识图谱可视化、知识问答和模型配置的操作说明。

功能概览

GraphRAG是基于图结构的知识增强检索系统。其核心思路是将文档内容解析为实体-关系图谱,并以图谱作为检索增强的基础,使AI能够回答跨文档、跨章节的复杂语义问题。

GraphRAG包含以下核心概念:

概念

说明

Workspace(工作空间)

GraphRAG的顶层组织单元,一个Workspace对应一套独立的文档集合和知识图谱。不同Workspace之间的数据相互隔离。

实体(Entity)

从文档中提取的具有特定类型的知识节点,例如人物、组织、地点、事件等。

关系(Relation)

连接两个实体的语义边,描述实体之间的关联关系。

文本块(Chunk)

文档经过分块处理后生成的文本片段,是图谱构建和检索的基础数据单元。

GraphRAG的处理流程如下:

  1. 文档解析与分块:上传文档后,系统通过解析引擎(MinerU、DoclingPaddleOCR)提取文字、表格和图像内容,并按配置的分块参数将文本切分为多个文本块(Chunk),每个文本块生成向量嵌入(Embedding)。

  2. 知识图谱构建:系统调用LLM对文本块进行实体抽取和关系抽取,将提取的实体和关系写入知识图谱(基于PolarDBpolar_age图扩展存储)。

  3. 多模式检索与问答:提问时,系统根据选择的检索模式(本地模式、全局模式、混合模式、混合检索等)从知识图谱和向量库中召回相关上下文,再由LLM生成回答。

知识库

知识库用于管理Workspace(工作空间),一个Workspace对应一套独立的文档集合和知识图谱。您可以创建多个Workspace来管理不同业务场景的文档。

创建工作空间

  1. GraphRAG页面左侧导航栏中,单击知识库

  2. 单击新建知识库

  3. 在创建对话框中,配置以下参数:

    参数

    说明

    名称

    工作空间名称,用于标识不同的文档集合。名称需符合命名规则,建议使用有意义的业务名称。

    解析参数

    配置文档解析相关参数,包括解析器类型、解析方式、分块大小和分块重叠等。具体参数说明请参见参数设置

  4. 单击创建,完成工作空间创建。

切换工作空间

在工作空间列表中,找到目标工作空间,单击操作列的切换,即可将当前活跃工作空间切换为目标空间。切换后,文档处理、知识图谱、知识问答等功能将基于该工作空间的数据运行。

删除工作空间

在工作空间列表中,找到目标工作空间,单击删除

说明

删除工作空间将同时删除该空间下的所有文档、知识图谱和相关数据,且不可恢复。请谨慎操作。

默认工作空间

系统首次启动时会自动创建名为default的默认工作空间。如果您删除了所有工作空间,再次访问时系统会提示您先创建一个新的工作空间。

文档处理

文档处理是GraphRAG的数据入口。系统会对上传的文档依次执行以下流程:解析、分块、图谱构建、状态更新。处理完成后,文档内容将被转化为实体-关系图谱,供知识问答使用。

支持的文档格式

GraphRAG支持以下文档格式:

  • PDF

  • Word(.doc、.docx)

  • PPT(.ppt、.pptx)

  • Excel(.xls、.xlsx)

  • TXT

  • Markdown(.md)

  • 图像(JPG、PNG等)

上传文档

  1. GraphRAG页面左侧导航栏中,单击文档处理

  2. 确认当前工作空间为目标空间。

  3. 单击上传文档,选择需要处理的文档文件。

  4. 上传完成后,系统将自动开始文档处理流程。您可以在文档列表中查看处理状态。

文档处理状态

文档在处理过程中会经历以下状态:

状态

说明

pending

文档已上传,等待系统处理。

processing

文档正在处理中,包括解析和分块操作。

preprocessed

文档预处理完成,正在进行图谱构建。

processed

文档处理完成,实体和关系已提取到知识图谱中,可用于知识问答。

failed

文档处理失败。您可以查看日志了解失败原因,并尝试重新处理。

文档管理操作

在文档列表中,您可以对文档执行以下操作:

  • 查看执行日志:页面底部的执行日志面板展示文档处理的详细日志信息,包括解析、分块和图谱构建的执行记录。您可以展开或收起日志面板。

  • 查看分块详情:单击目标文档的文件名,查看文档被分块后的文本块列表及其内容。

  • 重新处理失败文档:对于处理失败的文档,单击页面顶部工具栏的重新处理失败文档按钮,系统将对所有失败文档重新执行处理流程。

  • 删除文档:单击目标文档操作列的删除图标,移除文档及其关联的图谱数据。

参数设置

在创建或编辑工作空间时,您可以配置以下文档处理参数:

参数

可选值

说明

解析器

minerudoclingpaddleocr

选择文档解析引擎。不同解析器适用于不同的文档场景,详见下方解析器选择建议。

解析方式

autotxtocr

设置文档解析方式。auto为自动识别,txt为纯文本提取,ocr为光学字符识别。

分块大小

默认值:1200

设置每个文本块的最大字符数。较大的分块可保留更完整的上下文,较小的分块可提高检索精度。

分块重叠

默认值:100

设置相邻文本块之间的重叠字符数。适当的重叠可避免关键信息在分块边界处被截断。

解析器选择建议

根据文档类型和排版特点,建议选择不同的解析器:

解析器

适用场景

说明

MinerU

复杂排版文档

适合处理包含多栏布局、表格嵌套、图文混排等复杂排版的文档,具有较强的版面分析能力。

Docling

结构化格式文档

适合处理Word、PPT、Excel等具有明确结构的文档格式,能较好地保留文档层级和格式信息。

PaddleOCR

纯图片文档

适合处理扫描件、截图等纯图片形式的文档,通过OCR技术识别图片中的文字内容。

知识图谱

知识图谱模块以可视化方式展示文档中提取的实体和关系网络。通过图谱视图,您可以直观地了解文档内容之间的语义关联。

默认实体类型

系统默认提取以下类型的实体:

实体类型

说明

organization

组织机构,如公司、部门、团队等。

person

人物,如作者、负责人、参与者等。

geo

地理位置,如国家、城市、地区等。

event

事件,如项目启动、版本发布、会议等。

category

类别,如技术领域、产品分类等。

浏览图谱

在知识图谱可视化页面中,您可以执行以下操作:

  • 缩放:通过鼠标滚轮或触控板手势调整图谱的显示比例,查看全局结构或局部细节。

  • 平移:按住鼠标左键拖动画布,移动图谱的可视区域。

  • 点击高亮:单击某个实体节点,系统将高亮显示该实体及其直接关联的实体和关系,便于追踪特定实体的关联网络。

标签筛选

在图谱页面的标签筛选面板中,您可以按实体类型(如organizationperson等)筛选显示的实体,聚焦特定类型的知识网络。

调整显示规模

您可以通过以下参数调整图谱的显示规模:

  • 深度:设置图谱展开的关系层数,取值范围为1~5。深度越大,显示的关联层级越多。

  • 节点数:控制图谱中显示的最大节点数量。建议设置在300以内,以保证可视化页面的流畅体验。

说明

当节点数量过大时,图谱渲染可能出现卡顿。建议结合标签筛选和深度调整来控制显示规模。

知识问答

知识问答模块提供基于图谱增强的对话式问答功能,支持多轮对话。系统根据用户问题,从知识图谱和文档内容中检索相关信息,生成准确的回答。

检索模式

GraphRAG支持以下检索模式,您可以根据问题类型选择合适的模式:

模式

适用场景

说明

本地模式

具体细节查询

基于局部图谱结构进行检索,适合查询特定实体的属性、关系等细节信息。

全局模式

宏观摘要类问题

基于全局图谱结构进行检索和汇总,适合需要跨文档综合分析的宏观问题。

混合模式

综合性问题

结合localglobal两种模式的检索结果,兼顾细节和全局视角。

混合检索

通用场景(推荐)

推荐的默认模式。融合图谱检索和向量检索,在大多数问答场景下能获得最佳效果。

朴素模式

简单关键词匹配

纯向量检索模式,不使用图谱增强。适合简单的关键词匹配场景,响应速度较快。

绕过模式

纯大模型对话

跳过所有检索,直接使用大语言模型回答。适合与文档内容无关的通用问题。

问答操作

  1. GraphRAG页面左侧导航栏中,单击知识问答

  2. 确认当前工作空间为目标空间,并选择合适的检索模式。推荐使用混合检索。

  3. 在对话输入框中输入问题,按回车键或单击发送按钮。系统将以流式输出方式实时展示回答内容。

  4. 回答生成完成后,您可以继续输入后续问题进行多轮对话。系统会结合上下文信息提供更准确的回答。

如果回答效果不理想,您可以尝试切换检索模式。例如,查询具体细节时使用本地模式,查询宏观概览时使用全局模式。

如需开始新的独立会话,单击清空对话按钮清除当前会话的上下文记录。

查看引用来源

在每条回答中,系统会标注引用来源。单击引用标记可查看原始文档内容,帮助您验证回答的准确性和溯源信息出处。

常见问题

  • 回答显示"找不到相关信息"

    可能原因:文档尚未处理完成、使用了限制性过强的本地模式、问题措辞与文档内容差异较大。建议切换为混合检索或混合模式后重试。

  • 回答质量较差

    可能原因:LLM模型配置不正确、分块大小设置过小导致上下文不完整、业务领域实体类型未自定义。建议检查模型配置是否正确,在参数设置中适当增大分块大小,并在知识库设置中添加更具体的业务实体类型。

模型配置

模型配置模块用于管理GraphRAG使用的AI模型。系统采用模型提供商 + 模型的两层配置架构,模型ID格式为模型名@提供商名

模型类型

GraphRAG使用以下四种类型的AI模型:

模型类型

是否必选

说明

LLM

大语言模型,用于实体提取、关系识别、知识问答等核心任务。

Embedding

文本向量化模型,用于将文本转换为向量表示,支持语义相似度检索。

Rerank

重排序模型,用于对初步检索结果进行精排,提升检索质量。配置后可增强问答的准确性。

VLM

视觉语言模型,用于处理包含图像的文档内容。配置后可增强对图片类文档的理解能力。

说明

LLMEmbedding为必选模型,系统运行前必须配置。RerankVLM为可选模型,根据实际需求配置。

核心概念

  • 模型提供商(Factory):模型的来源平台或厂商,每个提供商持有一个API Key和可选的Base URL。系统预置了30余个主流提供商。

  • 模型(Model):挂载在提供商下的具体模型实例,包含模型名称、类型(chat/embedding/rerank等)和最大Token数等属性。

  • 模型ID:系统使用模型名@提供商名作为模型的唯一标识,例如qwen-plus@Tongyi-Qianwen

  • API Key与模型的关系:修改提供商的API Key后,系统会自动同步更新该提供商下所有已添加模型的密钥。

首次配置

首次使用GraphRAG时,需要按照以下步骤完成模型配置:

  1. 添加模型提供商:在模型配置页面,展开从预设模型提供商添加区域,选择目标提供商(如千问、OpenAI、DeepSeek等),填写API Key等连接信息。

  2. 添加模型:单击添加自定义模型,选择提供商并输入模型名称和类型。系统将自动生成模型ID,格式为模型名@提供商名

  3. 设置默认模型:在页面顶部的默认模型设置区域,分别为LLMEmbedding类型选择默认使用的模型,单击保存

模型管理操作

完成首次配置后,您还可以执行以下管理操作:

  • 修改提供商API Key:在已添加模型列表中找到目标提供商,单击提供商行右侧的API-Key按钮,在弹框中修改API KeyBase URL后保存。修改后该提供商下所有模型的密钥将同步更新。

  • 删除单个模型:展开目标提供商的模型列表,勾选要删除的模型,单击删除选中按钮确认。

    说明

    需先勾选至少一个模型后,删除选中按钮才会出现。

  • 删除提供商及其全部模型:单击提供商行右侧的全部删除按钮,确认后系统将同时移除该提供商的API Key记录及其下所有模型。

  • 重载配置模型:如果在服务端.env文件中修改了LLM_MODELLLM_API_KEYEMBEDDING_MODEL等环境变量,可单击重载配置模型按钮,将环境变量中的模型配置同步到配置文件,无需重启服务。

支持的模型提供商

系统预置了以下主流模型提供商(部分列举):

提供商

支持类型

说明

Tongyi-Qianwen

LLM、Embedding、Rerank、VLM

阿里云千问

OpenAI

LLM、Embedding、VLM

OpenAI官方

DeepSeek

LLM

深度求索

ZHIPU-AI

LLM、Embedding、Rerank

智谱GLM

Ollama

LLM、Embedding

本地模型部署

Azure-OpenAI

LLM、Embedding、VLM

Azure托管的OpenAI

Bedrock

LLM、Embedding、VLM

AWS Bedrock

说明

以上仅列举部分提供商,完整列表请在模型配置页面的从预设模型提供商添加区域查看。

常见问题排查

模型配置过程中如遇到问题,请参考以下排查方案:

问题现象

可能原因

解决方案

文档状态持续为pending

未配置默认LLMEmbedding模型

进入模型配置页面,确认已正确配置并设置默认的LLMEmbedding模型。

API Key invalid

API密钥无效或已过期

检查模型提供商的API密钥是否正确,使用验证连接功能测试密钥有效性。如密钥已过期,请在模型提供商平台重新生成。

Connection timeout

网络连接超时

检查网络连通性,确认知识平台所在环境能够访问模型提供商的API端点。如使用VPC网络,请确认安全组和白名单配置正确。

Model not found

模型名称错误或不在提供商支持列表中

确认模型名称拼写正确,并检查该模型是否在对应提供商的可用模型列表中。