|
|
@@ -1,3 +1,160 @@
|
|
|
+
|
|
|
+
|
|
|
+# LightRAG - 轻量级快速检索增强生成系统
|
|
|
+一款结合知识图谱与向量检索的高性能RAG框架,支持多模态文档处理与多模型灵活接入,可快速搭建生产级私有智能知识库问答系统。
|
|
|
+
|
|
|
+## (一)项目简介
|
|
|
+本项目核心定位是解决传统RAG系统检索精度不足、上下文理解能力弱、部署配置复杂的行业痛点,通过创新的知识图谱增强检索架构,在保持轻量高效的同时大幅提升问答的全面性、多样性与准确性。支持文本、图片、表格、公式等多模态内容处理,兼容OpenAI、Hugging Face、Ollama等主流大模型生态,以及PostgreSQL、Neo4J、Faiss等10余种存储后端,提供开箱即用的Web UI、RESTful API与Python SDK,显著降低RAG系统的开发与运维成本。
|
|
|
+
|
|
|
+核心优势包括:性能优于传统RAG及GraphRAG等主流方案,在法律、农业、计算机等多个领域评测中表现突出;内置自动化知识图谱构建、编辑与可视化能力;支持本地/全局/混合等6种检索模式,适配不同查询场景;完整的多模态处理能力(集成RAG-Anything);灵活的插件化架构,支持自定义模型与存储扩展;提供Docker与K8s部署方案,可直接用于生产环境。
|
|
|
+
|
|
|
+## (二)环境前置要求
|
|
|
+- **操作系统**:支持Windows、Linux、macOS全平台
|
|
|
+- **Python版本**:Python 3.9+(推荐3.10+)
|
|
|
+- **Docker部署**:需提前安装Docker 20.10+及Docker Compose v2+
|
|
|
+- **硬件要求**:最低2核4G内存,推荐4核8G以上;使用本地大模型需8G以上显存GPU
|
|
|
+- **可选依赖**:Git版本管理工具、CUDA 11.8+(GPU加速)、textract(多格式文档解析)
|
|
|
+
|
|
|
+## (三)快速开始 / 安装部署
|
|
|
+### 1. PyPI 安装(推荐)
|
|
|
+#### 服务器版(含Web UI与API)
|
|
|
+```bash
|
|
|
+pip install "lightrag-hku[api]"
|
|
|
+```
|
|
|
+
|
|
|
+#### 核心版(仅Python SDK)
|
|
|
+```bash
|
|
|
+pip install lightrag-hku
|
|
|
+```
|
|
|
+
|
|
|
+### 2. 源码安装
|
|
|
+```bash
|
|
|
+git clone https://github.com/HKUDS/LightRAG.git
|
|
|
+cd LightRAG
|
|
|
+# 创建并激活虚拟环境(可选)
|
|
|
+python -m venv venv
|
|
|
+source venv/bin/activate # Windows: venv\Scripts\activate
|
|
|
+# 安装带API支持的开发版本
|
|
|
+pip install -e ".[api]"
|
|
|
+```
|
|
|
+
|
|
|
+### 3. Docker Compose 部署(生产环境推荐)
|
|
|
+```bash
|
|
|
+git clone https://github.com/HKUDS/LightRAG.git
|
|
|
+cd LightRAG
|
|
|
+cp env.example .env
|
|
|
+# 编辑.env文件,配置LLM API密钥与模型参数
|
|
|
+docker compose up -d
|
|
|
+```
|
|
|
+
|
|
|
+## (四)基础使用示例
|
|
|
+### 1. 核心库快速入门(OpenAI模型)
|
|
|
+```python
|
|
|
+import os
|
|
|
+import asyncio
|
|
|
+from lightrag import LightRAG, QueryParam
|
|
|
+from lightrag.llm.openai import gpt_4o_mini_complete, openai_embed
|
|
|
+from lightrag.kg.shared_storage import initialize_pipeline_status
|
|
|
+
|
|
|
+# 设置工作目录与API密钥
|
|
|
+WORKING_DIR = "./rag_storage"
|
|
|
+os.environ["OPENAI_API_KEY"] = "你的OpenAI API密钥"
|
|
|
+if not os.path.exists(WORKING_DIR):
|
|
|
+ os.mkdir(WORKING_DIR)
|
|
|
+
|
|
|
+async def main():
|
|
|
+ # 初始化LightRAG实例
|
|
|
+ rag = LightRAG(
|
|
|
+ working_dir=WORKING_DIR,
|
|
|
+ embedding_func=openai_embed,
|
|
|
+ llm_model_func=gpt_4o_mini_complete,
|
|
|
+ )
|
|
|
+ # 必须执行的初始化步骤
|
|
|
+ await rag.initialize_storages()
|
|
|
+ await initialize_pipeline_status()
|
|
|
+
|
|
|
+ # 插入文档内容
|
|
|
+ rag.insert("LightRAG是香港大学数据科学实验室开发的轻量级快速检索增强生成系统,结合了知识图谱与向量检索技术。")
|
|
|
+
|
|
|
+ # 执行混合检索问答
|
|
|
+ result = await rag.query(
|
|
|
+ "LightRAG是什么?它有什么技术特点?",
|
|
|
+ param=QueryParam(mode="hybrid", response_type="Bullet Points")
|
|
|
+ )
|
|
|
+ print(result)
|
|
|
+
|
|
|
+ await rag.finalize_storages()
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ asyncio.run(main())
|
|
|
+```
|
|
|
+
|
|
|
+### 2. Web UI 使用
|
|
|
+1. 部署完成后访问 `http://localhost:8000` 进入管理界面
|
|
|
+2. 在「文档管理」页面上传PDF、DOCX、PPTX、CSV等格式文档
|
|
|
+3. 等待系统自动完成文档解析、实体提取与知识图谱构建
|
|
|
+4. 在「问答」页面输入问题,支持流式响应与多轮对话
|
|
|
+5. 在「知识图谱」页面可视化查看实体关系与检索路径
|
|
|
+
|
|
|
+### 3. 多模态文档处理
|
|
|
+```bash
|
|
|
+# 安装多模态依赖
|
|
|
+pip install raganything
|
|
|
+```
|
|
|
+```python
|
|
|
+import asyncio
|
|
|
+from raganything import RAGAnything
|
|
|
+from lightrag.llm.openai import openai_complete_if_cache, openai_embed
|
|
|
+
|
|
|
+async def main():
|
|
|
+ rag = RAGAnything(
|
|
|
+ working_dir="./multimodal_rag",
|
|
|
+ llm_model_func=lambda prompt, **kwargs: openai_complete_if_cache(
|
|
|
+ "gpt-4o-mini", prompt, api_key="你的API密钥", **kwargs
|
|
|
+ ),
|
|
|
+ embedding_func=lambda texts: openai_embed(
|
|
|
+ texts, model="text-embedding-3-large", api_key="你的API密钥"
|
|
|
+ ),
|
|
|
+ embedding_dim=3072,
|
|
|
+ )
|
|
|
+
|
|
|
+ # 处理包含图片、表格、公式的PDF文档
|
|
|
+ await rag.process_document_complete("path/to/your/document.pdf")
|
|
|
+
|
|
|
+ # 查询多模态内容
|
|
|
+ result = await rag.query_with_multimodal(
|
|
|
+ "请总结文档中表格展示的实验数据",
|
|
|
+ mode="hybrid"
|
|
|
+ )
|
|
|
+ print(result)
|
|
|
+
|
|
|
+if __name__ == "__main__":
|
|
|
+ asyncio.run(main())
|
|
|
+```
|
|
|
+
|
|
|
+## (五)开源许可证
|
|
|
+本项目开源许可证详情请参考项目根目录下的 `LICENSE` 文件。
|
|
|
+
|
|
|
+## 补充信息
|
|
|
+- 学术引用:
|
|
|
+ ```bibtex
|
|
|
+ @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}
|
|
|
+ }
|
|
|
+ ```
|
|
|
+- 支持的存储后端:
|
|
|
+ - KV存储:JSON、PostgreSQL、Redis、MongoDB
|
|
|
+ - 向量存储:NanoVector、PGVector、Milvus、Chroma、Faiss、Qdrant
|
|
|
+ - 图存储:NetworkX、Neo4J、PostgreSQL+AGE
|
|
|
+- 支持的大模型:OpenAI系列、Hugging Face开源模型、Ollama本地模型、LlamaIndex兼容模型
|
|
|
+- 核心功能:引用溯源、Token使用统计、数据导出、缓存管理、自定义知识图谱、批量文档处理
|
|
|
+- 交流社区:项目Discord频道(链接见官方README)
|
|
|
+
|
|
|
<div align="center">
|
|
|
|
|
|
<div style="margin: 20px 0;">
|