基于知识图谱构建的检索增强生成 GraphRAG 部署指南
背景与原理
在传统的 LLM 应用开发中,检索增强生成(RAG)是提升模型回答准确性的利器。然而,标准 RAG 通常基于切片片段进行召回,这导致其只能回答局部文档问题,难以处理涉及知识库全局信息的复杂查询。
微软近期开源了 GraphRAG(Graph-based Retrieval Augmented Generation),它在通用 RAG 的基础上结合了知识图谱技术。GraphRAG 的核心流程如下:
- 实体与关系提取:利用大语言模型从知识库中提取实体及其相互关系。
- 社区聚类与摘要:对实体间的联系进行聚类,生成社区摘要。
- 问答生成:在回答用户问题时,结合社区摘要提供丰富的上下文和关系信息。
这种机制显著提升了检索生成的效果,使其能够理解数据之间的深层关联。
环境搭建
GraphRAG 的环境依赖相对简单,主要需要 Python 环境和相应的包。
conda create -n graphrag python=3.10
conda activate graphrag
git clone https://github.com/microsoft/graphrag.git
cd graphrag
pip install graphrag
数据准备与配置
1. 准备知识库
知识图谱适合处理结构化或半结构化的文本数据。例如,可以使用小说人物关系、企业组织架构等作为示例数据。将整理好的文本文件(如 TXT 格式)放入指定目录。
mkdir -p ./hlmtest/input
echo "红楼梦四大家族简介..." > ./hlmtest/input/data.txt
2. 初始化配置
在 GraphRAG 根目录下执行初始化命令,生成默认的环境变量文件和设置文件。
python -m graphrag.index --init --root ./hlmtest
执行后会在 ./hlmtest 目录下生成 .env 和 settings.yaml 文件。
配置 API Key
编辑 .env 文件,填入你的 OpenAI 或其他兼容模型的 API Key。
GRAPHRAG_API_KEY=your_openai_key
配置项目参数
编辑 settings.yaml 文件,主要配置模型、切片规则及 Prompt 等参数。
LLM 模块配置:
llm:
api_key: ${GRAPHRAG_API_KEY}
type: azure_openai_chat # 或 openai_chat
model: model_name
model_supports_json:


