利用 GraphRAG + GLM-4 构建《红楼梦》全文的中文增强检索系统
引言
检索增强生成(Retrieval-Augmented Generation, RAG)技术通过结合外部知识库与大语言模型,有效缓解了模型幻觉问题。而图检索增强生成(GraphRAG)在此基础上引入了知识图谱结构,通过实体关系网络提升了对复杂问题的理解与推理能力。
原生 GraphRAG 项目主要面向英文环境优化,在处理中文长文本时存在分块乱码、提示词不匹配及模型支持不足等问题。本文基于 graphrag-practice-chinese 开源项目,结合智谱 AI 的 GLM-4 大模型,详细演示了如何构建针对《红楼梦》全文的中文增强检索系统,涵盖环境搭建、配置优化、索引构建及查询测试全流程。
核心优势与技术选型
1. 为什么选择 GraphRAG?
传统向量检索(Vector Search)擅长语义相似度匹配,但在处理多跳推理(Multi-hop Reasoning)和全局概览(Global Overview)时表现有限。GraphRAG 通过构建实体节点和关系边,能够:
- 揭示隐藏关系:发现文本中未直接陈述但隐含的人物或事件关联。
- 全局摘要:生成社区级别的摘要,便于回答宏观主题问题。
- 上下文保持:在长文档检索中更好地维持上下文连贯性。
2. 模型选择:GLM-4
原生 GraphRAG 默认调用 OpenAI API,对中文支持较弱且成本较高。本项目选用智谱 AI 提供的 GLM-4 系列模型(如 glm-4-flash 或 glm-4-plus),原因如下:
- 中文原生能力强:对中文语境、成语及文化背景理解更精准。
- 成本可控:相比 GPT-4 系列,Token 消耗成本更低,适合大规模全文索引构建。
- API 兼容:通过适配层可无缝替换 OpenAI 接口调用逻辑。
环境搭建
1. 克隆项目
首先从 GitHub 获取项目代码:
git clone https://github.com/zhaoyingjun/graphrag-practice-chinese.git
cd ./graphrag-practice-chinese
2. 安装依赖
确保 Python 版本为 3.9 或以上,并安装项目所需依赖:
pip install -r ./requirements.txt
3. 初始化配置
运行初始化命令以创建必要的配置文件目录:
python -m graphrag.index --init --root ./
此命令将在当前目录下生成 .env 和 settings.yaml 文件。
4. 准备数据
创建输入目录用于存放待索引的文本文件:
mkdir ./input
将《红楼梦》原文保存为 UTF-8 编码的 .txt 文件放入该目录。注意 GraphRAG 仅支持 txt 或 csv 格式。
配置优化策略
1. 环境变量配置 (.env)
.env 文件用于存储敏感信息,如 API Key。需修改如下内容:
=your_zhipu_api_key_here


