首页 /
实操教程 /
从RAG到GraphRAG:企业知识库问答系统搭建实战 从RAG到GraphRAG:企业知识库问答系统搭建实战
技术开发RAGGraphRAG知识库向量数据库Neo4j2026-09-06
从RAG到GraphRAG:企业知识库问答系统搭建实战
在企业知识库应用中,传统 RAG 已能回答事实型问题,可是当问题涉及跨文档、多跳关系时,答案往往支离破碎。GraphRAG 通过引入知识图谱,让检索器在实体关系上行走,从而支持复杂问答。本文从文档清洗切片、向量库选型、RAG 问题分析,到 GraphRAG 开源实现,一步步带您搭建生产可用的知识库问答系统。
1. 企业文档清洗与切片策略
1.1 清洗
- 移除页眉页脚、页码、水印、超链接。
- 对扫描件做 OCR 和版面分析,防止表格错乱。
- 用正则排除乱码与重复内容,统一编码并转为 UTF-8。
1.2 结构解析
用标题层级切分文档树,必要时抽取标题-正文-表格的最小单元。可用 `unstructured` 或 `pdfplumber`,对复杂版面用 OCR 服务。
1.3 切片策略对比
| 切片策略 | 优点 | 缺点 | 适用场景 |
|---|
| 固定大小切片 | 实现简单,token 可控 | 切断语义 | 说明文档 |
| 段落切片 | 保持段落完整 | 长度不均匀 | 通常文档 |
| 章节切片 | 语义边界清晰 | 章节过长需拆分子块 | 技术手册、规范 |
| 语义切片 | 利用 embedding 相似聚类 | 计算成本高 | 复杂长文档 |
切片时需要保留上下文元数据,例如标题、页码、章节路径,供后续引用。推荐重叠比例为 10% 至 20%。
2. 向量数据库选型及对比
常见向量库有 Dedicated 产品(Pinecone)、开源分布式(Milvus)、轻量级(Chroma)、扩展自 PostgreSQL(pgvector)等。
| 名称 | 开源 | 分布式 | 混合搜索 | 性能 | 易用性 |
|---|
| Milvus | ✅ | ✅ | ✅ | 高 | 中 |
| Qdrant | ✅ | 部分 | ✅ | 高 | 高 |
| Weaviate | ✅ | 部分 | ✅ | 中 | 中 |
| Chroma | ✅ | ❌ | 部分 | 低 | 高 |
| pgvector | ✅ | ✅ | 需配合 | 中 | 高 |
| Pinecone | ❌ | ✅ | ✅ | 高 | 高 |
选型建议:如果已有 PostgreSQL 且数据量不大,先用 pgvector;若需大规模多租户,选 Milvus 或 Qdrant;平台工程团队缺失时用云服务。
3. 传统RAG问题与GraphRAG改进方案
3.1 传统 RAG 痛点
- 文本切片导致实体关系被切割;
- 向量检索只找相似片段,无法做多跳推理;
- 回答孤立事实,缺乏全局总结;
- 用户意图复杂时,召回片段不完整。
3.2 GraphRAG 的改进
将实体与关系显式建图,检索时先向量召回可能节点,再沿图扩充邻域,把相关子图作为上下文交给大模型,实现多跳推理和全局概览。
graph TD
A[文档清洗与切片] --> B[实体与关系抽取]
B --> C[(知识图谱)]
B --> D[向量化]
C --> E[GraphRAG 检索器]
D --> E
E --> F[大模型生成答案]
GraphRAG 可以回答如“某产品线去年的营收增长与哪些部门有关?”这类关联性问题,而传统 RAG 通常只给出相似片段。
4. 基于开源框架或云厂商平台实现
4.1 开源组合
- 知识图谱:Neo4j
- 向量存储:Qdrant(或 Milvus)
- 抽取链路:LlamaIndex 或 微软 GraphRAG
- 大模型:GPT-4 或 Qwen
简单伪代码:
from graph_rag import GraphRAG
rag = GraphRAG(
graph_db='neo4j://localhost:7687',
vector_db='qdrant://localhost:6333',
llm='qwen-plus'
)
rag.ingest_documents(file_name)
answer = rag.query('公司去年营收是多少?')
print(answer)
4.2 云厂商平台
- 阿里云:使用知识图谱 + 阿里云 OpenSearch 与百炼应用。
- AWS:用 Neptune / Kendra 组合。
- 微软 Azure:使用 Neo4j Marketplace + Azure OpenAI。
云平台可快速建立基础设施,但需要注意数据出口合规和 token 费用。
推荐视频
(以下为视频搜索入口,点击可直接跳转到对应平台查找课程,出处为对应平台)
操作清单
避坑指南
- 清洗时忽略表格会造成严重信息丢失,务必启用表格抽取。
- 切片重叠过多会让向量库膨胀,要按实际收益调整。
- 向量库的 filtering 能力常被忽略,需按元数据权限过滤选型。
- 实体抽取要结合词典与 Prompt,否则图形同虚设。
- GraphRAG 查询延迟可能高,建议预设社区摘要缓存。
- 输出答案必须附原文出处,便于追溯。
- 数据与模型调用都要合规,不在私有化环境中用未经批准的云模型。
免责声明
本文为技术教程,所涉及产品、商标归各自所有者所有。封面图来自 Unsplash,可能受到版权保护,仅作示例。推荐视频为平台检索入口,演示视频版权归原作者所有。本文内容不构成任何商业承诺,请在真实环境下自行验证。PREMIUM需要完整版教程?
包含详细步骤、视频演示、提示词模板和可下载资料包。微信支付即时获取。
购买完整版 ¥29.90