检索增强生成(RAG)系统

SourceShare f89c7c1854 sync README 2 semanas atrás
.clinerules e738dff6f2 commit 3 semanas atrás
.github e738dff6f2 commit 3 semanas atrás
README.assets e738dff6f2 commit 3 semanas atrás
assets e738dff6f2 commit 3 semanas atrás
docs e738dff6f2 commit 3 semanas atrás
examples e738dff6f2 commit 3 semanas atrás
k8s-deploy e738dff6f2 commit 3 semanas atrás
lightrag e738dff6f2 commit 3 semanas atrás
lightrag_webui e738dff6f2 commit 3 semanas atrás
prompts e738dff6f2 commit 3 semanas atrás
reproduce e738dff6f2 commit 3 semanas atrás
scripts e738dff6f2 commit 3 semanas atrás
tests e738dff6f2 commit 3 semanas atrás
.dockerignore e738dff6f2 commit 3 semanas atrás
.gitattributes e738dff6f2 commit 3 semanas atrás
.gitignore e738dff6f2 commit 3 semanas atrás
.pre-commit-config.yaml e738dff6f2 commit 3 semanas atrás
AGENTS.md e738dff6f2 commit 3 semanas atrás
CLAUDE.md e738dff6f2 commit 3 semanas atrás
Dockerfile e738dff6f2 commit 3 semanas atrás
Dockerfile.lite e738dff6f2 commit 3 semanas atrás
Dockerfile.postgres e738dff6f2 commit 3 semanas atrás
LICENSE e738dff6f2 commit 3 semanas atrás
MANIFEST.in e738dff6f2 commit 3 semanas atrás
Makefile e738dff6f2 commit 3 semanas atrás
README-zh.md e738dff6f2 commit 3 semanas atrás
README.md f89c7c1854 sync README 2 semanas atrás
SECURITY.md e738dff6f2 commit 3 semanas atrás
config.ini.example e738dff6f2 commit 3 semanas atrás
docker-build-push.sh e738dff6f2 commit 3 semanas atrás
docker-compose-full.yml e738dff6f2 commit 3 semanas atrás
docker-compose.podman.yml e738dff6f2 commit 3 semanas atrás
docker-compose.yml e738dff6f2 commit 3 semanas atrás
env.docker-compose-full e738dff6f2 commit 3 semanas atrás
env.example e738dff6f2 commit 3 semanas atrás
lightrag.service.example e738dff6f2 commit 3 semanas atrás
pyproject.toml e738dff6f2 commit 3 semanas atrás
requirements-offline-llm.txt e738dff6f2 commit 3 semanas atrás
requirements-offline-storage.txt e738dff6f2 commit 3 semanas atrás
requirements-offline.txt e738dff6f2 commit 3 semanas atrás
setup.py e738dff6f2 commit 3 semanas atrás
uv.lock e738dff6f2 commit 3 semanas atrás

README-zh.md

LightRAG Logo

🚀 LightRAG: 简单且快速的检索增强生成(RAG)框架

LightRAG Diagram


🎉 新闻

  • [2026.05]🎯[新功能]:将 RagAnything 合并至 LightRAG🎉。支持通过 MinerU / Docling 服务进行多模态内容解析与提取。
  • [2026.05]🎯[新功能]:引入四种可选的文本分块策略:Fix(固定)、Recursive(递归)、Vector(向量)和 Paragraph(段落语义)。
  • [2026.05]🎯[新功能]:支持按角色配置 LLM,提供四个独立角色:EXTRACT、QUERY、KEYWORDS 和 VLM,每个角色拥有独立的 LLM 设置。
  • [2026.03]🎯[新功能]: 集成了 OpenSearch 作为统一存储后端,为 LightRAG 的全部四种存储类型提供全面支持。
  • [2026.03]🎯[新功能]: 推出交互式安装向导,支持通过 Docker 在本地部署 Embedding、Reranking 及存储后端服务。
  • [2025.11]🎯[新功能]: 集成了 RAGAS 评估Langfuse 追踪。更新了 API 以在查询结果中返回召回上下文,支持上下文精度指标。
  • [2025.10]🎯[可扩展性增强]: 消除了处理瓶颈,以高效支持大规模数据集
  • [2025.09]🎯[新功能]: 显著提升了 Qwen3-30B-A3B 等开源 LLM 的知识图谱提取准确性。
  • [2025.08]🎯[新功能]: 现已支持 Reranker,显著提升混合查询性能(已设为默认查询模式)。
  • [2025.08]🎯[新功能]: 添加了文档删除功能,并支持自动重新生成知识图谱,以确保最佳查询性能。
  • [2025.06]🎯[新发布]: 我们的团队发布了 RAG-Anything —— 一个用于无缝处理文本、图像、表格和方程式的全功能多模态 RAG 系统。
  • [2025.06]🎯[新功能]: LightRAG 现已集成 RAG-Anything,支持全面的多模态数据处理,实现对 PDF、图像、Office 文档、表格和公式等多种格式的无缝文档解析和 RAG 能力。详见多模态文档处理部分
  • [2025.03]🎯[新功能]: LightRAG 现已支持引用功能,实现了准确的源归因和增强的文档可追溯性。
  • [2025.02]🎯[新功能]: 现在您可以使用 MongoDB 作为一体化存储解决方案,实现统一的数据管理。
  • [2025.02]🎯[新发布]: 我们的团队发布了 VideoRAG —— 一个用于理解超长上下文视频的 RAG 系统。
  • [2025.01]🎯[新发布]: 我们的团队发布了 MiniRAG,使用小型模型简化 RAG。
  • [2025.01]🎯现在您可以使用 PostgreSQL 作为一体化存储解决方案进行数据管理。
  • [2024.11]🎯[新资源]: LightRAG 的综合指南现已在 LearnOpenCV 上发布 —— 探索深入的教程和最佳实践。非常感谢博客作者的杰出贡献!
  • [2024.11]🎯[新功能]: 推出 LightRAG WebUI —— 一个允许您通过直观的 Web 界面插入、查询和可视化 LightRAG 知识的仪表板。
  • [2024.11]🎯[新功能]: 现在您可以使用 Neo4J 进行存储 —— 开启图数据库支持。
  • [2024.10]🎯[新功能]: 我们添加了 LightRAG 介绍视频 的链接 —— 演示 LightRAG 的各项功能。感谢作者的杰出贡献!
  • [2024.10]🎯[新频道]: 我们创建了一个 Discord 频道!💬 欢迎加入我们的社区进行分享、讨论和协作! 🎉🎉
算法流程图 ![LightRAG索引流程图](https://learnopencv.com/wp-content/uploads/2024/11/LightRAG-VectorDB-Json-KV-Store-Indexing-Flowchart-scaled.jpg) *图1:LightRAG索引流程图 - 图片来源:[Source](https://learnopencv.com/lightrag/)* ![LightRAG检索和查询流程图](https://learnopencv.com/wp-content/uploads/2024/11/LightRAG-Querying-Flowchart-Dual-Level-Retrieval-Generation-Knowledge-Graphs-scaled.jpg) *图2:LightRAG检索和查询流程图 - 图片来源:[Source](https://learnopencv.com/lightrag/)*

安装

💡 使用 uv 进行包管理: 本项目使用 uv 进行快速可靠的 Python 包管理。首先安装 uv: curl -LsSf https://astral.sh/uv/install.sh | sh (Unix/macOS) 或 powershell -c "irm https://astral.sh/uv/install.ps1 | iex" (Windows)

注意:如果您愿意,也可以使用 pip,但为了获得更好的性能 and 更可靠的依赖管理,建议使用 uv。

📦 离线部署: 对于离线或隔离环境,请参阅离线部署指南,了解预安装所有依赖项和缓存文件的说明。

安装LightRAG服务器

LightRAG服务器旨在提供Web UI和API支持。Web UI便于文档索引、知识图谱探索和简单的RAG查询界面。LightRAG服务器还提供兼容Ollama的接口,旨在将LightRAG模拟为Ollama聊天模型。这使得AI聊天机器人(如Open WebUI)可以轻松访问LightRAG。

  • 从PyPI安装

    ### 使用 uv 安装 LightRAG 服务器(作为工具,推荐)
    uv tool install "lightrag-hku[api]"
    
    ### 或使用 pip
    # python -m venv .venv
    # source .venv/bin/activate  # Windows: .venv\Scripts\activate
    # pip install "lightrag-hku[api]"
    
    ### 构建前端代码
    cd lightrag_webui
    bun install --frozen-lockfile
    bun run build
    cd ..
    
    # 配置 env 文件
    # 从 GitHub 仓库的根目录上下载 env.example 文件
    # 或从本地检出的源代码中获取 env.example 文件
    cp env.example .env  # 使用你的LLM和Embedding模型访问参数更新.env文件
    # 启动API-WebUI服务
    lightrag-server
    
  • 从源代码安装

    git clone https://github.com/HKUDS/LightRAG.git
    cd LightRAG
    
    # 一键初始化开发环境(推荐)
    make dev
    source .venv/bin/activate  # 激活虚拟环境 (Linux/macOS)
    # Windows 系统: .venv\Scripts\activate
    
    # make dev 会安装测试工具链以及完整的离线依赖栈
    # (API、存储后端与各类 Provider 集成),并构建前端;不会生成 .env。
    # 启动服务前请先运行 make env-base,或手动从 env.example 复制并配置 .env。
    
    # 使用 uv 的等价手动步骤
    # 注意: uv sync 会自动在 .venv/ 目录创建虚拟环境
    uv sync --extra test --extra offline
    source .venv/bin/activate  # 激活虚拟环境 (Linux/macOS)
    # Windows 系统: .venv\Scripts\activate
    
    ### 或使用 pip 和虚拟环境
    # python -m venv .venv
    # source .venv/bin/activate  # Windows: .venv\Scripts\activate
    # pip install -e ".[test,offline]"
    
    # 构建前端代码
    cd lightrag_webui
    bun install --frozen-lockfile
    bun run build
    cd ..
    
    # 配置 env 文件
    make env-base  # 或: cp env.example .env 后手动修改
    # 启动API-WebUI服务
    lightrag-server
    
  • 使用 Docker Compose 启动 LightRAG 服务器

    git clone https://github.com/HKUDS/LightRAG.git
    cd LightRAG
    cp env.example .env  # 使用你的LLM和Embedding模型访问参数更新.env文件
    # modify LLM and Embedding settings in .env
    docker compose up
    

在此获取LightRAG docker镜像历史版本: LightRAG Docker Images

由 GitHub Actions 发布到 GHCR 的官方镜像已使用 GitHub OIDC 和 Sigstore Cosign 进行签名。校验方式请参阅 docs/DockerDeployment.md

使用 Setup 工具创建 .env 文件

除了手动编辑 env.example 之外,您还可以使用交互式向导生成配置好的 .env,并在需要时生成 docker-compose.final.yml

make env-base           # 必跑第一步:配置 LLM、Embedding、Reranker
make env-storage        # 可选:配置存储后端和数据库服务
make env-server         # 可选:配置服务端口、鉴权和 SSL
make env-base-rewrite   # 可选:强制重建向导托管的 compose 服务块
make env-storage-rewrite # 可选:强制重建向导托管的 compose 服务块
make env-security-check # 可选:审计当前 .env 中的安全风险

每个目标的详细说明请参阅 docs/InteractiveSetup.md。 这些 setup 向导只负责更新配置;如需在部署前审计当前 .env 的安全风险,请额外运行 make env-security-check。 默认情况下,重新运行 setup 会保留未变化的向导托管 compose 服务块;只有在需要按模板强制重建这些托管块时,才使用 *-rewrite 目标。

安装LightRAG Core

  • 从源代码安装(推荐)

    cd LightRAG
    # 注意: uv sync 会自动在 .venv/ 目录创建虚拟环境
    uv sync
    source .venv/bin/activate  # 激活虚拟环境 (Linux/macOS)
    # Windows 系统: .venv\Scripts\activate
    
    # 或: pip install -e .
    
  • 从PyPI安装

    uv pip install lightrag-hku
    # 或: pip install lightrag-hku
    

快速开始

LightRAG的LLM及配套技术栈要求

LightRAG对大型语言模型(LLM)的能力要求远高于传统RAG,因为它需要LLM执行文档中的实体关系抽取任务。配置合适的Embedding和Reranker模型对提高查询表现也至关重要。

  • LLM选型
    • 推荐选用参数量至少为32B的LLM。
    • 上下文长度至少为32KB,推荐达到64KB。
    • 在文档索引阶段不建议选择推理模型。
    • 在查询阶段建议选择比索引阶段能力更强的模型,以达到更高的查询效果。
  • Embedding模型
    • 高性能的Embedding模型对RAG至关重要。
    • 推荐使用主流的多语言Embedding模型,例如:BAAI/bge-m3 和 text-embedding-3-large。
    • 重要提示:在文档索引前必须确定使用的Embedding模型,且在文档查询阶段必须沿用与索引阶段相同的模型。有些存储(例如PostgreSQL)在首次建立数表的时候需要确定向量维度,因此更换Embedding模型后需要删除向量相关库表,以便让LightRAG重建新的库表。
  • Reranker模型配置
    • 配置Reranker模型能够显著提升LightRAG的检索效果。
    • 启用Reranker模型后,推荐将“mix模式”设为默认查询模式。
    • 推荐选用主流的Reranker模型,例如:BAAI/bge-reranker-v2-m3 或 Jina 等服务商提供的模型。

使用LightRAG服务器

LightRAG 服务器旨在提供 Web UI 和 API 支持,同时提供了全面的知识图谱可视化功能,支持各种重力布局、节点查询、子图过滤等。有关LightRAG服务器的更多信息,请参阅LightRAG服务器

iShot_2025-03-23_12.40.08

使用LightRAG Core

LightRAG核心功能的示例代码请参见examples目录。您还可参照视频视频完成环境配置。若已持有OpenAI API密钥,可以通过以下命令运行演示代码:

### you should run the demo code with project folder
cd LightRAG
### provide your API-KEY for OpenAI
export OPENAI_API_KEY="sk-...your_opeai_key..."
### download the demo document of "A Christmas Carol" by Charles Dickens
curl https://raw.githubusercontent.com/gusye1234/nano-graphrag/main/tests/mock_data.txt > ./book.txt
### run the demo code
python examples/lightrag_openai_demo.py

如需流式响应示例的实现代码,请参阅 examples/lightrag_openai_compatible_demo.py。运行前,请确保根据需求修改示例代码中的LLM及嵌入模型配置。

注意1:在运行demo程序的时候需要注意,不同的测试程序可能使用的是不同的embedding模型,更换不同的embeding模型的时候需要把清空数据目录(./dickens),否则层序执行会出错。如果你想保留LLM缓存,可以在清除数据目录时保留kv_store_llm_response_cache.json文件。

注意2:官方支持的示例代码仅为 lightrag_openai_demo.pylightrag_openai_compatible_demo.py 两个文件。其他示例文件均为社区贡献内容,尚未经过完整测试与优化。

使用LightRAG Core进行编程

完整的 Core API 参考 —— 包括初始化参数、QueryParam、各 LLM/Embedding 接入示例(OpenAI、Ollama、Azure、Gemini、HuggingFace、LlamaIndex)、Rerank 注入、插入操作、实体/关系管理、删除与合并 —— 详见 docs/ProgramingWithCore.md(英文)。

⚠️ 如果您希望将LightRAG集成到您的项目中,建议您使用LightRAG Server提供的REST API。LightRAG Core通常用于嵌入式应用,或供希望进行研究与评估的学者使用。

高级功能

LightRAG 提供 Token 用量追踪、知识图谱数据导出、LLM 缓存管理、Langfuse 可观测性集成和基于 RAGAS 的评估框架。详见 docs/AdvancedFeatures.md(英文)。

多模态文档处理

LightRAG Server 已内置多模态文档流水线,支持 PDF、Office 文档、图像、表格和公式。解析通过外置 MinerU 或 Docling 服务完成,多模态索引在 LightRAG 流水线内执行。详见 docs/AdvancedFeatures.md(英文)。

重现论文结果

LightRAG 在农业、计算机科学、法律和混合等领域均显著优于 NaiveRAG、RQ-RAG、HyDE 和 GraphRAG。完整评估方法论、提示词和复现步骤详见 docs/Reproduce.md(英文)。

总体性能表

农业 计算机科学 法律 混合
NaiveRAG LightRAG NaiveRAG LightRAG NaiveRAG LightRAG NaiveRAG LightRAG
全面性 32.4% 67.6% 38.4% 61.6% 16.4% 83.6% 38.8% 61.2%
多样性 23.6% 76.4% 38.0% 62.0% 13.6% 86.4% 32.4% 67.6%
赋能性 32.4% 67.6% 38.8% 61.2% 16.4% 83.6% 42.8% 57.2%
总体 32.4% 67.6% 38.8% 61.2% 15.2% 84.8% 40.0% 60.0%
RQ-RAG LightRAG RQ-RAG LightRAG RQ-RAG LightRAG RQ-RAG LightRAG
全面性 31.6% 68.4% 38.8% 61.2% 15.2% 84.8% 39.2% 60.8%
多样性 29.2% 70.8% 39.2% 60.8% 11.6% 88.4% 30.8% 69.2%
赋能性 31.6% 68.4% 36.4% 63.6% 15.2% 84.8% 42.4% 57.6%
总体 32.4% 67.6% 38.0% 62.0% 14.4% 85.6% 40.0% 60.0%
HyDE LightRAG HyDE LightRAG HyDE LightRAG HyDE LightRAG
全面性 26.0% 74.0% 41.6% 58.4% 26.8% 73.2% 40.4% 59.6%
多样性 24.0% 76.0% 38.8% 61.2% 20.0% 80.0% 32.4% 67.6%
赋能性 25.2% 74.8% 40.8% 59.2% 26.0% 74.0% 46.0% 54.0%
总体 24.8% 75.2% 41.6% 58.4% 26.4% 73.6% 42.4% 57.6%
GraphRAG LightRAG GraphRAG LightRAG GraphRAG LightRAG GraphRAG LightRAG
全面性 45.6% 54.4% 48.4% 51.6% 48.4% 51.6% 50.4% 49.6%
多样性 22.8% 77.2% 40.8% 59.2% 26.4% 73.6% 36.0% 64.0%
赋能性 41.2% 58.8% 45.2% 54.8% 43.6% 56.4% 50.8% 49.2%
总体 45.2% 54.8% 48.0% 52.0% 47.2% 52.8% 50.4% 49.6%

🔗 相关项目

生态与扩展


⭐ Star 历史

Star History Chart

🤝 贡献

我们欢迎各种形式的贡献——Bug 修复、新功能、文档改进等。
提交 Pull Request 前,请阅读 贡献指南


我们感谢所有贡献者做出的宝贵贡献。

📖 引用

@article{guo2024lightrag,
title={LightRAG: Simple and Fast Retrieval-Augmented Generation},
author={Zirui Guo and Lianghao Xia and Yanhua Yu and Tu Ao and Chao Huang},
year={2024},
eprint={2410.05779},
archivePrefix={arXiv},
primaryClass={cs.IR}
}

感谢您访问 LightRAG!