LightRAG README

The project's README from github.com/HKUDS/LightRAG. As one markdown file: README.md.

LightRAG Logo

🚀 LightRAG: Simple and Fast Retrieval-Augmented Generation

HKUDS%2FLightRAG | Trendshift

LightRAG Diagram

LiteWrite

🎉 News

Algorithm Flowchart

LightRAG Indexing Flowchart Figure 1: LightRAG Indexing Flowchart - Img Caption : Source LightRAG Retrieval and Querying Flowchart Figure 2: LightRAG Retrieval and Querying Flowchart - Img Caption : Source

Installation

💡 Using uv for Package Management: This project uses uv for fast and reliable Python package management. Install uv first: curl -LsSf https://astral.sh/uv/install.sh | sh (Unix/macOS) or powershell -c "irm https://astral.sh/uv/install.ps1 | iex" (Windows)

Note: You can also use pip if you prefer, but uv is recommended for better performance and more reliable dependency management.

📦 Offline Deployment: For offline or air-gapped environments, see the Offline Deployment Guide for instructions on pre-installing all dependencies and cache files.

Install LightRAG Server

### Install LightRAG Server as tool using uv (recommended)
uv tool install "lightrag-hku[api]"

### Or using pip
# python -m venv .venv
# source .venv/bin/activate  # Windows: .venv\Scripts\activate
# pip install "lightrag-hku[api]"

# Setup env file
# Obtain the env.example file by downloading it from the GitHub repository root
# or by copying it from a local source checkout.
cp env.example .env  # Update the .env with your LLM and embedding configurations
# Launch the server. It binds to all interfaces (0.0.0.0) by default.
# SECURITY: before exposing it on a network, configure authentication in .env
# (LIGHTRAG_API_KEY, or AUTH_ACCOUNTS together with TOKEN_SECRET), or bind to
# 127.0.0.1 for local-only access; without auth every endpoint is public.
# Note: the Ollama-compatible /api/* routes stay open by default for client
# compatibility; set WHITELIST_PATHS=/health to require auth on them too.
lightrag-server
git clone https://github.com/HKUDS/LightRAG.git
cd LightRAG

# Bootstrap the development environment (recommended)
make dev
source .venv/bin/activate  # Activate the virtual environment (Linux/macOS)
# Or on Windows: .venv\Scripts\activate

# make dev installs the test toolchain plus the full offline stack
# (API, storage backends, and provider integrations), then builds the frontend.
# Run make env-base or copy env.example to .env before starting the server.

# Equivalent manual steps with uv
# Note: uv sync automatically creates a virtual environment in .venv/
uv sync --extra test --extra offline
source .venv/bin/activate  # Activate the virtual environment (Linux/macOS)
# Or on Windows: .venv\Scripts\activate

### Or using pip with virtual environment
# python -m venv .venv
# source .venv/bin/activate  # Windows: .venv\Scripts\activate
# pip install -e ".[test,offline]"

# Build front-end artifacts
cd lightrag_webui
bun install --frozen-lockfile
bun run build
cd ..

# setup env file
make env-base  # Or: cp env.example .env and update it manually
# Launch API-WebUI server
lightrag-server
git clone https://github.com/HKUDS/LightRAG.git
cd LightRAG
cp env.example .env  # Update the .env with your LLM and embedding configurations
# modify LLM and Embedding settings in .env
docker compose up

Historical versions of LightRAG docker images can be found here: LightRAG Docker Images

Official GHCR images published by GitHub Actions are signed with Sigstore Cosign using GitHub OIDC. See docs/DockerDeployment.md for verification commands.

On Apple Silicon (macOS 26) without Docker Desktop, you can run the same Postgres/Neo4j/Milvus storage stack on Apple's native container runtime — see docs/AppleContainerSetup.md.

Create .env File With Setup Tool

Instead of editing env.example by hand, use the interactive setup wizard to generate a configured .env and, when needed, docker-compose.final.yml:

make env-base           # Required first step: LLM, embedding, reranker
make env-storage        # Optional: storage backends and database services
make env-server         # Optional: server port, auth, and SSL
make env-base-rewrite   # Optional: force-regenerate wizard-managed compose services
make env-storage-rewrite # Optional: force-regenerate wizard-managed compose services
make env-security-check # Optional: audit the current .env for security risks

For full description of every target see docs/InteractiveSetup.md.

Optional: spaCy Models for docx smart_heading

The native docx parser's opt-in smart_heading engine parameter uses spaCy for sentence/NER heuristics. The spaCy runtime is already included in the api extra — only the two pinned language models (zh_core_web_sm / en_core_web_sm 3.8.0, GitHub release wheels not published on PyPI) need one extra step:

lightrag-download-cache --spacy-install

Enable smart_heading per file/rule (e.g. LIGHTRAG_PARSER=docx:native(smart_heading=true)), or globally in .env:

# .docx files routed to the native engine get smart_heading by default;
# opt a file back out with an explicit native(smart_heading=false) rule/hint.
DOCX_SMART_HEADING=true

When the global switch is on (or a LIGHTRAG_PARSER rule carries native(smart_heading=true)), the server verifies the models at startup and fails fast with install guidance if they are missing. Deployments that never enable smart_heading need no models. The main Docker image ships the models pre-installed (the lite image does not); for air-gapped hosts see the Offline Deployment Guide.

Optional: libcairo for SVG Rasterization (native md/textpack)

The native markdown/textpack parser rasterizes embedded SVG images to PNG via cairosvg. cairosvg is a cffi binding: pip install cairosvg (pulled in by the api extra) always succeeds, but rendering only works if the native libcairo shared library is also present on the host — pip/uv cannot install system libraries. Without it, rasterization fails at runtime and the affected SVG is skipped (the rest of the document is unaffected); the server logs a warning at startup so the gap is visible before it shows up as a per-document warning later.

Install the system package for your platform:

# Debian / Ubuntu (the official Docker image already includes this)
sudo apt-get install -y libcairo2

# RHEL / Fedora
sudo dnf install -y cairo

# macOS (Homebrew)
brew install cairo

# Windows: install the GTK3 runtime, which bundles libcairo-2.dll

Deployments that never process markdown/textpack documents with embedded SVGs can ignore the startup warning.

About LightRAG

A Lightweight, Graph-Based RAG Framework

LightRAG is a lightweight knowledge-graph RAG framework and an efficient alternative to Microsoft GraphRAG. It adopts a dual-layer architecture to manage both knowledge graphs (KGs) and vector embeddings, effectively bridging the gap between traditional vector-based RAG and graph-based RAG approaches. Designed for high scalability, LightRAG addresses key challenges in large-scale graph indexing and retrieval, including heavy computational overhead, slow response times, and the high cost of incremental updates. While supporting large datasets, LightRAG can still deliver exceptionally high RAG quality, even when paired with a 30B open-source large language model (LLM).

Features & Advantages

Multimodal Capability Upgrades

Traditional RAG systems lack an effective way to process multimodal content such as images, formulas, and tables in documents. Starting with v1.5, LightRAG seamlessly integrates multimodal processing into its document pipeline and query flow. Through the knowledge graph, LightRAG connects multimodal content with the body text and can use that information when answering queries to produce more accurate and reliable responses. This capability can substantially improve RAG quality for documents rich in multimodal content, such as operation manuals and academic papers.

LightRAG API Server

The LightRAG server offers not only a web-based UI for exploring LightRAG functionalities but also a comprehensive REST API. For more information about the LightRAG server, please refer to LightRAG Server.

iShot_2025-03-23_12.40.08

Key Configuration Guide

Selecting LLM Models

LightRAG requires LLM/VLMs of four different roles during its workflow

LightRAG (HKUDS/LightRAG)

Searching Database…

40.2K ·GitHub
Что это такое?LightRAG — это опенсорсный RAG-фреймворк на основе графа знаний (EMNLP 2025) от HKUDS. Он индексирует ваши документы в граф знаний плюс векторные эмбеддинги, чтобы вы могли делать по ним запросы — более лёгкая и быстрая альтернатива Microsoft GraphRAG.
Это библиотека, которую я подключаю в свой код, или готовое приложение?И то и другое: это Python-фреймворк, который можно встроить в свой код, и в комплекте идёт сервер с веб-интерфейсом, где можно добавлять документы, делать запросы и визуализировать базу знаний, плюс полноценный REST API.
Как его запустить?Установите из PyPI через uv (рекомендуется) или pip, либо запустите сервер с помощью Docker Compose. Затем запустите интерактивный мастер настройки, чтобы сгенерировать готовый .env, вместо того чтобы вручную править env.example.
Модель LLM нужно приносить свою?Да — модели вы предоставляете сами: LLM/VLM в четырёх ролях (EXTRACT, QUERY, KEYWORDS и VLM), у каждой свои независимые настройки. Извлечение графа хорошо работает и с опенсорсными моделями вроде Qwen3-30B-A3B.
Настроек хранилища по умолчанию хватит для продакшена?Нет. Хранилища KV, векторов и графа в памяти с сохранением в локальные файлы по умолчанию годятся только для небольших тестов; для продакшена с большими объёмами данных рекомендуется PostgreSQL (также подходят Neo4j, MongoDB и OpenSearch).
Для каких задач он подходит лучше всего?Для областей, где много знаний: в README упоминаются юридическая и финансовая работа, где нужно целостное понимание или логические рассуждения. Он также рассчитан оставаться эффективным на больших объёмах данных, не теряя качества RAG.
Можно запустить на сервере без интернета, в изолированной сети?Да — есть отдельное руководство по офлайн-развёртыванию, где описана предварительная установка всех зависимостей и файлов кэша для изолированных серверов, а официальные Docker-образы подписаны через Sigstore Cosign для проверки подлинности.
Чем это отличается от обычного векторного RAG?Здесь вместе с векторными эмбеддингами индексируется граф знаний, а поиск идёт на двух уровнях — конкретные факты и более общие понятия, — что улавливает связи между сущностями, которые поиск по чанкам пропускает. При этом не используются отчёты по сообществам и многошаговые рассуждения, что сокращает число вызовов LLM, задержку и стоимость.
Какие форматы документов он принимает?Через интеграцию с RAG-Anything: PDF, изображения, документы Office, таблицы и формулы. Разбор выполняется на MinerU, Docling или встроенном движке Native, который тоже умеет обрабатывать изображения, таблицы и формулы внутри файлов Word и Markdown.
Если обновить базу знаний, придётся переиндексировать всё заново?Нет — документы можно добавлять поэтапно, а удаление одного документа запускает автоматическую регенерацию графа знаний: используется LLM-кэш от индексации, чтобы перестроить только затронутые сущности и связи.
Можно ли оценить, насколько хороши его ответы?Да — встроены RAGAS для оценки качества и Langfuse для трассировки, а API может возвращать найденные контексты вместе с результатами запроса, чтобы можно было оценивать точность контекста.
Creator
HKUDS
Size
114.9 MB
Stars
40.2K
Age
2y
Commits · 90 Days