检索增强生成(RAG)已成为 2026 年构建企业级 AI 应用的核心架构。本教程将带您从基础的混合检索(向量 + 关键词)进阶至前沿的 GraphRAG(基于知识图谱的 RAG),解决传统大模型在复杂推理和全局理解上的幻觉痛点。无论您是开发者还是技术爱好者,学完本教程后,您将掌握搭建高准确率问答系统的全套流程,能够独立处理私有数据并实现深度知识关联。
pip install langchain graphrag neo4j chromadb,确保安装最新版本的 LangChain 和微软开源的 GraphRAG 引擎。首先,我们需要建立一个既能捕捉语义又能匹配精确关键词的混合索引。创建数据处理脚本,加载您的 PDF 或 TXT 文档集。
关键操作:初始化 ChromaDB 集合,同时启用稀疏向量(BM25)和稠密向量(Embedding)。设置参数 hnsw:space="cosine" 以确保相似度计算准确。
注意事项:切勿直接切片过长文本,建议将文档按 512 token 进行重叠切片(overlap=50),以保留上下文连贯性。
预期结果:控制台输出索引构建完成,显示文档块数量及向量维度信息。
这是 GraphRAG 的核心。利用大模型从非结构化文本中自动抽取实体(如人名、机构)及其相互关系。
具体指令:运行 graphrag index --root ./data --config settings.yaml。在配置文件中,将 entity_extraction.prompt 指向自定义提示词模板,要求模型输出 JSON 格式的三元组。

关键点:调整参数 max_gleanings=2 以增加实体抽取的迭代次数,提升召回率。
预期结果:生成包含节点和边的图数据库文件(如 Parquet 格式),并在日志中看到实体去重统计。
GraphRAG 的优势在于“全局视角”。系统会自动对图谱进行社区检测(Leiden 算法),并为每个社区生成摘要。
操作细节:调用 graphrag query --method global 发起查询。此时系统不再仅匹配片段,而是基于社区摘要进行推理。
重要警告:首次运行耗时较长,因为需要生成多层级的社区摘要,请耐心等待进度条完成,勿强制中断。
预期结果:针对复杂问题(如“整个数据集的主题趋势是什么”),返回结构清晰、引用来源明确的综合报告。

为了提升系统效率,专业玩家通常会采用“分层检索”策略:简单事实性问题走混合检索通道,复杂推理问题自动路由至 GraphRAG 通道。您可以通过编写一个简单的分类器 Prompt 来实现这一逻辑。
常见问题是图谱噪声过多导致推理偏差。解决方案是在提取阶段增加“实体消歧”步骤,合并同义词(如"AI"与“人工智能”)。此外,利用 Neo4j 可视化界面手动修正关键错误关系,能显著提升最终回答的可信度。
一个小窍门:在 settings.yaml 中开启缓存机制(cache_enabled: true),可避免重复处理相同文档,将二次构建速度提升 80% 以上。
本教程带领您完成了从混合检索到 GraphRAG 的完整搭建,核心在于结合向量相似度与图谱逻辑推理。建议您尝试用自己的行业数据(如医疗文献或法律条文)复现此流程,对比纯向量检索与 GraphRAG 的回答差异。欲深入钻研,可查阅 LangChain 官方文档及微软 GraphRAG GitHub 仓库源码,探索更多定制化插件开发。