[EMNLP2025] "LightRAG: Simple and Fast Retrieval-Augmented Generation"
이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
<div align="center"> <img src="./README.assets/b2aaf634151b4706892693ffb43d9093.png" width="800" alt="LightRAG 다이어그램"> </div>
Fix, Recursive, Vector, Paragraph.<details> <summary style="font-size: 1.4em; font-weight: bold; cursor: pointer; display: list-item;"> 알고리즘 순서도 </summary>
!LightRAG 인덱싱 순서도 그림 1: LightRAG 인덱싱 순서도 - 이미지 설명 : 출처 !LightRAG 검색 및 쿼리 순서도 그림 2: LightRAG 검색 및 쿼리 순서도 - 이미지 설명 : 출처
</details>
💡 uv를 사용한 패키지 관리: 이 프로젝트는 빠르고 안정적인 Python 패키지 관리를 위해 uv를 사용합니다. 먼저 uv를 설치하세요: curl -LsSf https://astral.sh/uv/install.sh | sh (Unix/macOS) 또는 powershell -c "irm https://astral.sh/uv/install.ps1 | iex" (Windows)
참고: 원한다면 pip를 사용할 수도 있지만, uv가 더 나은 성능과 더 안정적인 의존성 관리를 제공하므로 권장됩니다.
>
📦 오프라인 배포: 오프라인 또는 폐쇄망 환경의 경우 오프라인 배포 가이드에서 모든 의존성과 캐시 파일을 사전 설치하는 방법을 확인하세요.
### 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..
# 환경 파일 설정
# GitHub 저장소 루트에서 env.example 파일을 다운로드하거나
# 로컬 소스 체크아웃에서 복사하여 가져옵니다.
cp env.example.env # LLM 및 임베딩 설정으로.env 업데이트
# 서버 실행. 기본적으로 모든 인터페이스(0.0.0.0)에 바인딩됩니다.
# 보안: 네트워크에 노출하기 전에.env에서 인증을 구성하거나
# (LIGHTRAG_API_KEY, 또는 TOKEN_SECRET과 함께 AUTH_ACCOUNTS), 로컬 전용 액세스를 위해 127.0.0.1에 바인딩하세요.
# 인증 없이 모든 엔드포인트가 공개됩니다.
# 참고: Ollama 호환 /api/* 경로는 클라이언트 호환성을 위해 기본적으로 열려 있습니다.
# 이 경로에도 인증을 적용하려면 WHITELIST_PATHS=/health를 설정하세요.
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, 스토리지 백엔드, 공급자 통합)을 설치한 다음 프론트엔드를 빌드합니다.
# 서버를 시작하기 전에 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..
# 환경 파일 설정
make env-base # 또는: cp env.example.env로 복사하고 수동으로 업데이트
# API-WebUI 서버 실행
lightrag-server
git clone https://github.com/HKUDS/LightRAG.git
cd LightRAG
cp env.example.env # LLM 및 임베딩 설정으로.env 업데이트
#.env에서 LLM 및 임베딩 설정 수정
docker compose up
이전 버전의 LightRAG 도커 이미지는 여기에서 찾을 수 있습니다: LightRAG Docker Images
>
GitHub Actions에서 게시한 공식 GHCR 이미지는 GitHub OIDC를 사용하여 Sigstore Cosign으로 서명됩니다. 확인 명령은 docs/DockerDeployment.md를 참조하세요.
env.example를 수동으로 편집하는 대신 대화형 설정 마법사를 사용하여 구성된 .env와 필요한 경우 docker-compose.final.yml을 생성하세요:
make setup
이 마법사는 다음을 안내합니다:
마법사가 완료되면 다음을 실행하여 서비스를 시작할 수 있습니다:
docker compose -f docker-compose.final.yml up -d
pip install lightrag-hku
또는 소스에서:
pip install -e.
API 서버가 실행 중이면 HTTP 요청을 통해 상호 작용할 수 있습니다. 다음은 Python 예제입니다:
import requests
import json
# 텍스트 문서 삽입
response = requests.post(
"http://localhost:9621/documents/text",
json={"text": "LightRAG은 검색 증강 생성을 위한 간단하고 빠른 프레임워크입니다."}
)
print(response.json())
# 쿼리 실행
response = requests.post(
"http://localhost:9621/query",
json={"query": "LightRAG이란 무엇인가요?", "mode": "hybrid"}
)
print(response.json())
import asyncio
from lightrag import LightRAG
from lightrag.llm import gpt_4o_mini_complete, gpt_4o_complete
from lightrag.embedding import OpenAIEmbedding
# 작업 디렉토리 생성
WORKING_DIR = "./lightrag_data"
# LightRAG 인스턴스 생성
rag = LightRAG(
working_dir=WORKING_DIR,
llm_model_func=gpt_4o_mini_complete, # LLM 함수
embedding_func=OpenAIEmbedding(),
)
# 텍스트 삽입
rag.insert("LightRAG은 검색 증강 생성을 위한 간단하고 빠른 프레임워크입니다.")
# 쿼리 실행
print(rag.query("LightRAG이란 무엇인가요?", param={"mode": "hybrid"}))
LightRAG는 다양한 LLM 공급자를 지원합니다:
from lightrag import LightRAG
from lightrag.llm import gpt_4o_mini_complete, gpt_4o_complete
rag = LightRAG(
working_dir="./lightrag_data",
llm_model_func=gpt_4o_mini_complete, # 기본 LLM
extraction_llm_model_func=gpt_4o_complete, # 추출용 LLM
query_llm_model_func=gpt_4o_mini_complete, # 쿼리용 LLM
keyword_llm_model_func=gpt_4o_mini_complete, # 키워드 추출용 LLM
)
from lightrag import LightRAG
from lightrag.base import DocProcessing
rag = LightRAG(
working_dir="./lightrag_data",
chunk_func=DocProcessing(
strategy="recursive", # "fix", "recursive", "vector", "paragraph"
chunk_size=1024,
overlap=200,
),
)
from lightrag import LightRAG
from lightrag.reranker import CrossEncoderReranker
rag = LightRAG(
working_dir="./lightrag_data",
reranker=CrossEncoderReranker(model_name="BAAI/bge-reranker-v2-m3"),
)
POST /documents/text: 텍스트 문서 삽입POST /documents/file: 파일 업로드POST /query: 쿼리 실행DELETE /documents: 문서 삭제GET /health: 상태 확인naive: 기본 검색local: 로컬 검색global: 글로벌 검색hybrid: 혼합 검색 (기본값)이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.