LightRAG
双层检索+知识图谱增强的轻量级 RAG 框架,让大模型问答更准、更全、更快
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
双层检索+知识图谱增强的轻量级 RAG 框架,让大模型问答更准、更全、更快
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你问 AI 一个关于公司内部文档的复杂问题,它却一本正经地「胡说八道」——这不是 AI 的错,而是它根本没看过那份文档。检索增强生成(RAG)就是为了解决这个问题——让大模型在回答之前,先去「查资料」,再结合真实信息给出答案。
但传统 RAG 有一个致命弱点:它只会「大海捞针」式的向量检索,按语义相似度找最相关的文本片段。当用户的问题涉及多个分散的知识节点时(比如「比较 A 公司和 B 公司的技术路线差异,并分析这对行业的影响」),单层检索往往顾此失彼,漏掉关键上下文。
LightRAG 正是为了解决这个痛点而生——它由香港大学数据科学实验室(HKUDS)开发,在 EMNLP 2025 发表,通过「双层检索(Entity + Relationship) + 知识图谱增强」的创新架构,让 RAG 系统拥有了「举一反三」的推理能力。
图1:LightRAG 项目 Logo — 轻量、快速、功能完整的 RAG 开发框架
传统 RAG 的工作方式像一位图书管理员,只记住了书的编号(向量),按「这本书和你的问题最像」来推荐。但它不知道书里讲了什么、人和人之间的关系是什么。
LightRAG 则像一位资深研究员,不仅记得每本书的内容,还记得书与书之间的引用关系、作者之间的合作关系。当用户问:「OpenAI 的 GPT-4 和 Anthropic 的 Claude 在推理能力上有什么差异?」时,LightRAG 的双层检索会同时:
这种「局部到全局」的双层策略,使得 LightRAG 在多跳问答(multi-hop QA)任务上,答案完整性比传统 RAG 提升 40% 以上,同时检索速度还快了 50%。
图2:LightRAG 索引流程 — 向量数据库 + JSON KV 存储 + 知识图谱三元组并行构建
LightRAG 的代码仓库采用了模块化插件架构,核心组件及各司其职:
| 模块 | 职责 | 关键文件 |
|---|---|---|
| lightrag.py | 核心调度器,管理整个 RAG 生命周期 | 入口 |
| chunker/ | 文本分块策略(Fix / Recursive / Vector / Paragraph) | 多种策略 |
| llm/ | LLM 接口层,支持 OpenAI / Google GenAI / Ollama 等 | 灵活插拔 |
| kg/ | 知识图谱构建与查询 | 实体+关系提取 |
| operate.py | 检索与生成操作 | query / insert |
| parser/ | 文档解析(PDF/DOCX/PPTX/XLSX) | 多格式支持 |
| lightrag_webui/ | 前端界面(Next.js + TypeScript) | Web UI |
| api/ | FastAPI 后端服务 | REST API |
LightRAG 支持多种存储后端,开发者可以根据规模选择:
这种「存储无关(Storage-agnostic)」设计,让 LightRAG 可以渐进式部署——从小规模 SQLite 起步,流量增长后无缝迁移到 PostgreSQL 或 Neo4j。
LightRAG 创新性地引入了 LLM 角色分离机制,将 RAG 流程中的 4 类 LLM 调用分配给不同角色:
每个角色可以独立配置不同的模型——比如用 GPT-4o 做 EXTRACT(需要高质量),用 GPT-3.5 做 KEYWORDS(够用就行),大幅降低成本。
LightRAG 的代码质量体现出明显的学术工程化特点:
优点:
.pre-commit-config.yaml 强制代码风格改进空间:
operate.py、pipeline.py)单文件超过 500 行,可以进一步按职责拆分为更小的类
图3:LightRAG 检索与生成流程 — 双重检索 + 知识图谱上下文增强
git clone https://github.com/HKUDS/LightRAG.git
cd LightRAG
cp env.example .env
# 编辑 .env 填入你的 OpenAI API Key
docker compose up
启动后访问 http://localhost:9621,就能看到 Web UI,可以上传文档、探索知识图谱、发起问答。
from lightrag import LightRAG, QueryParam
rag = LightRAG(working_dir="./rag_storage")
# 插入文档
rag.insert("大模型的相关知识...")
# 检索问答
result = rag.query(
"大模型的技术原理是什么?",
param=QueryParam(mode="hybrid", top_k=5)
)
print(result)
LightRAG 的诞生映射了 RAG 技术演进的一个重要趋势:从单层向量检索,进化到图谱增强的多层推理。随着 GPT-4、Claude 等大模型上下文窗口越来越大,很多人一度认为 RAG 会过时——但实际恰恰相反,当上下文足够长时,如何从海量文档中精准找到真正相关的片段,变得更加重要。
LightRAG 证明了:知识图谱与向量检索的结合,不是「双重开销」,而是「1+1>2」的能力倍增器。在 EMNLP 2025 的发表、超过 35,000 颗 GitHub Stars、Discord 社区活跃的讨论,都说明这个方向得到了学术和工业的双重认可。
分析基于 HKUDS/LightRAG GitHub 仓库,stars 35,661(采集时),Python 语言,MIT 许可证。