LightRAG Configuration Reference
Configuration Overview
┌─────────────────────────────────────────────────────────────────────────────┐
│ CONFIGURATION LAYERS │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ 1. COMMAND LINE ARGUMENTS (highest priority) │ │
│ │ python -m lightrag.api.lightrag_server --port 9621 --workers 2 │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ 2. ENVIRONMENT VARIABLES │ │
│ │ export PORT=9621 │ │
│ │ export LLM_MODEL=gpt-4o-mini │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ 3. .env FILE │ │
│ │ LLM_MODEL=gpt-4o-mini │ │
│ │ EMBEDDING_DIM=1536 │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ 4. PYTHON DATACLASS DEFAULTS (lowest priority) │ │
│ │ LightRAG(working_dir="./rag_storage") │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
1. Server Configuration
Basic Server Settings
| Variable |
CLI Flag |
Default |
Description |
HOST |
--host |
0.0.0.0 |
Server bind address |
PORT |
--port |
9621 |
Server port |
WORKERS |
--workers |
2 |
Number of worker processes |
TIMEOUT |
--timeout |
300 |
Request timeout (seconds) |
WORKING_DIR |
--working-dir |
./rag_storage |
RAG storage directory |
INPUT_DIR |
--input-dir |
./inputs |
Document input directory |
SSL/TLS Configuration
| Variable |
CLI Flag |
Default |
Description |
SSL |
--ssl |
false |
Enable HTTPS |
SSL_CERTFILE |
--ssl-certfile |
None |
Path to SSL certificate |
SSL_KEYFILE |
--ssl-keyfile |
None |
Path to SSL private key |
Logging Configuration
| Variable |
CLI Flag |
Default |
Description |
LOG_LEVEL |
--log-level |
INFO |
Logging level (DEBUG/INFO/WARNING/ERROR/CRITICAL) |
VERBOSE |
--verbose |
false |
Enable verbose debug output |
LOG_MAX_BYTES |
— |
10485760 |
Max log file size (10MB) |
LOG_BACKUP_COUNT |
— |
5 |
Number of log backups |
LOG_FILENAME |
— |
lightrag.log |
Log filename |
2. LLM Configuration
Provider Selection
| Variable |
CLI Flag |
Default |
Description |
LLM_BINDING |
--llm-binding |
openai |
LLM provider |
LLM_MODEL |
— |
mistral-nemo:latest |
Model name |
LLM_BINDING_HOST |
— |
Provider-specific |
API endpoint URL |
LLM_BINDING_API_KEY |
— |
None |
API key |
Supported LLM Bindings:
openai - OpenAI API (default)
ollama - Local Ollama
lollms - LoLLMs server
azure_openai - Azure OpenAI Service
aws_bedrock - AWS Bedrock
openai-ollama - OpenAI LLM + Ollama embeddings
Provider-Specific Host Defaults
| Provider |
Default Host |
openai |
https://api.openai.com/v1 |
ollama |
http://localhost:11434 |
lollms |
http://localhost:9600 |
azure_openai |
AZURE_OPENAI_ENDPOINT env |
LLM Performance Settings
| Variable |
Default |
Description |
MAX_ASYNC |
4 |
Max concurrent LLM requests |
LLM_TIMEOUT |
180 |
LLM request timeout (seconds) |
ENABLE_LLM_CACHE |
true |
Enable LLM response caching |
ENABLE_LLM_CACHE_FOR_EXTRACT |
true |
Cache extraction responses |
TEMPERATURE |
1.0 |
LLM temperature setting |
Ollama-Specific Settings
| Variable |
Default |
Description |
OLLAMA_NUM_CTX |
32768 |
Context window size |
OLLAMA_EMULATING_MODEL_NAME |
lightrag |
Simulated model name |
OLLAMA_EMULATING_MODEL_TAG |
latest |
Simulated model tag |
3. Embedding Configuration
Embedding Provider
| Variable |
CLI Flag |
Default |
Description |
EMBEDDING_BINDING |
--embedding-binding |
openai |
Embedding provider |
EMBEDDING_MODEL |
— |
bge-m3:latest |
Embedding model name |
EMBEDDING_DIM |
— |
1024 |
Embedding dimensions |
EMBEDDING_BINDING_HOST |
— |
Provider-specific |
API endpoint |
EMBEDDING_BINDING_API_KEY |
— |
"" |
API key |
Supported Embedding Bindings:
openai - OpenAI embeddings
ollama - Local Ollama embeddings
azure_openai - Azure OpenAI embeddings
aws_bedrock - AWS Bedrock Titan
jina - Jina embeddings
Embedding Performance
| Variable |
Default |
Description |
EMBEDDING_FUNC_MAX_ASYNC |
8 |
Max concurrent embedding requests |
EMBEDDING_BATCH_NUM |
10 |
Batch size for embeddings |
EMBEDDING_TIMEOUT |
30 |
Embedding request timeout (seconds) |
4. Storage Configuration
Storage Backend Selection
| Variable |
Default |
Description |
LIGHTRAG_KV_STORAGE |
JsonKVStorage |
Key-value storage backend |
LIGHTRAG_VECTOR_STORAGE |
NanoVectorDBStorage |
Vector storage backend |
LIGHTRAG_GRAPH_STORAGE |
NetworkXStorage |
Graph storage backend |
LIGHTRAG_DOC_STATUS_STORAGE |
JsonDocStatusStorage |
Document status storage |
Available Storage Backends
KV Storage Options:
| Value |
Use Case |
JsonKVStorage |
Development, file-based |
RedisKVStorage |
Production, distributed |
PGKVStorage |
Production, PostgreSQL |
MongoKVStorage |
Production, MongoDB |
Vector Storage Options:
| Value |
Use Case |
NanoVectorDBStorage |
Development, in-memory |
PGVectorStorage |
Production, PostgreSQL |
MilvusVectorDBStorage |
Production, high-scale |
QdrantStorage |
Production, managed |
FAISSStorage |
Production, local |
RedisVectorStorage |
Production, distributed |
MongoDBVectorStorage |
Production, MongoDB |
Graph Storage Options:
| Value |
Use Case |
NetworkXStorage |
Development, in-memory |
Neo4JStorage |
Production, native graph |
PGGraphStorage |
Production, PostgreSQL |
AGEStorage |
Production, PostgreSQL AGE |
MemgraphStorage |
Production, real-time |
GremlinStorage |
Production, Gremlin-compatible |
PostgreSQL Configuration
| Variable |
Default |
Description |
POSTGRES_HOST |
localhost |
PostgreSQL host |
POSTGRES_PORT |
5432 |
PostgreSQL port |
POSTGRES_USER |
— |
Database user |
POSTGRES_PASSWORD |
— |
Database password |
POSTGRES_DATABASE |
— |
Database name |
Neo4j Configuration
| Variable |
Default |
Description |
NEO4J_URI |
bolt://localhost:7687 |
Neo4j connection URI |
NEO4J_USERNAME |
neo4j |
Neo4j username |
NEO4J_PASSWORD |
— |
Neo4j password |
Redis Configuration
| Variable |
Default |
Description |
REDIS_URI |
redis://localhost:6379 |
Redis connection URI |
Milvus Configuration
| Variable |
Default |
Description |
MILVUS_HOST |
localhost |
Milvus host |
MILVUS_PORT |
19530 |
Milvus port |
MILVUS_USER |
— |
Milvus user |
MILVUS_PASSWORD |
— |
Milvus password |
MILVUS_DB_NAME |
default |
Milvus database |
5. Document Processing Configuration
Chunking Settings
| Variable |
Default |
Description |
CHUNK_SIZE |
1200 |
Token size per chunk |
CHUNK_OVERLAP_SIZE |
100 |
Overlap between chunks |
| Variable |
Default |
Description |
SUMMARY_LANGUAGE |
English |
Language for summaries |
MAX_GLEANING |
1 |
Entity extraction iterations |
ENTITY_TYPES |
See below |
Types of entities to extract |
Default Entity Types:
ENTITY_TYPES = [
"Person", "Creature", "Organization", "Location",
"Event", "Concept", "Method", "Content",
"Data", "Artifact", "NaturalObject"
]
Summary Settings
| Variable |
Default |
Description |
SUMMARY_MAX_TOKENS |
1200 |
Max tokens per summary |
SUMMARY_LENGTH_RECOMMENDED |
600 |
Recommended summary length |
SUMMARY_CONTEXT_SIZE |
12000 |
Context window for summarization |
FORCE_LLM_SUMMARY_ON_MERGE |
8 |
Fragment threshold for LLM summary |
Document Loader
| Variable |
Default |
Description |
DOCUMENT_LOADING_ENGINE |
DEFAULT |
Document parser (DEFAULT/DOCLING) |
6. Query Configuration
QueryParam Class
@dataclass
class QueryParam:
mode: str = "mix" # Query mode
only_need_context: bool = False # Return only context
only_need_prompt: bool = False # Return only prompt
response_type: str = "Multiple Paragraphs"
stream: bool = False # Enable streaming
top_k: int = 40 # Top results
chunk_top_k: int = 20 # Top chunks
max_entity_tokens: int = 6000 # Entity token budget
max_relation_tokens: int = 8000 # Relation token budget
max_total_tokens: int = 30000 # Total token budget
enable_rerank: bool = True # Enable reranking
include_references: bool = False # Include citations
Query Modes
| Mode |
Description |
Best For |
naive |
Basic vector search |
Simple lookups |
local |
Entity-focused retrieval |
Specific entities |
global |
High-level summaries |
Broad questions |
hybrid |
Local + Global combined |
Balanced queries |
mix |
KG + Vector integration |
Complex questions |
bypass |
Skip RAG, direct LLM |
Testing |
Query Environment Variables
| Variable |
Default |
Description |
TOP_K |
40 |
Top-K entities/relations |
CHUNK_TOP_K |
20 |
Top-K text chunks |
MAX_ENTITY_TOKENS |
6000 |
Entity context budget |
MAX_RELATION_TOKENS |
8000 |
Relation context budget |
MAX_TOTAL_TOKENS |
30000 |
Total context budget |
COSINE_THRESHOLD |
0.2 |
Similarity threshold |
RELATED_CHUNK_NUMBER |
5 |
Related chunks to retrieve |
HISTORY_TURNS |
0 |
Conversation history turns |
7. Reranking Configuration
| Variable |
CLI Flag |
Default |
Description |
RERANK_BINDING |
--rerank-binding |
null |
Rerank provider |
RERANK_MODEL |
— |
None |
Rerank model name |
RERANK_BINDING_HOST |
— |
None |
Rerank API endpoint |
RERANK_BINDING_API_KEY |
— |
None |
Rerank API key |
MIN_RERANK_SCORE |
— |
0.0 |
Minimum rerank score |
RERANK_BY_DEFAULT |
— |
true |
Enable reranking by default |
Supported Rerank Bindings:
null - Disabled
cohere - Cohere rerank
jina - Jina rerank
aliyun - Aliyun rerank
8. Authentication & Security
API Authentication
| Variable |
CLI Flag |
Default |
Description |
LIGHTRAG_API_KEY |
--key |
None |
Simple API key auth |
AUTH_ACCOUNTS |
— |
"" |
Format: user1:pass1,user2:pass2 |
AUTH_USER |
— |
"" |
Single username (if AUTH_ACCOUNTS not set) |
AUTH_PASS |
— |
"" |
Single password |
JWT Configuration
| Variable |
Default |
Description |
TOKEN_SECRET |
lightrag-jwt-default-secret |
JWT signing secret |
TOKEN_EXPIRE_HOURS |
48 |
Token expiration (hours) |
GUEST_TOKEN_EXPIRE_HOURS |
24 |
Guest token expiration |
JWT_ALGORITHM |
HS256 |
JWT algorithm |
CORS & Network
| Variable |
Default |
Description |
CORS_ORIGINS |
* |
Allowed CORS origins |
WHITELIST_PATHS |
/health,/api/* |
Public paths |
Multi-Tenant Security
| Variable |
Default |
Description |
LIGHTRAG_MULTI_TENANT_STRICT |
true |
Enforce tenant isolation |
LIGHTRAG_REQUIRE_USER_AUTH |
true |
Require user authentication |
LIGHTRAG_SUPER_ADMIN_USERS |
admin |
Comma-separated admin usernames |
9. Multi-Tenancy Configuration
| Variable |
Default |
Description |
ENABLE_MULTI_TENANTS |
false |
Enable multi-tenant mode |
WORKSPACE |
"" |
Default workspace name |
MAX_GRAPH_NODES |
1000 |
Max graph nodes per query |
MAX_PARALLEL_INSERT |
2 |
Max parallel inserts |
10. Complete .env Example
# =============================================================================
# SERVER CONFIGURATION
# =============================================================================
HOST=0.0.0.0
PORT=9621
WORKERS=2
TIMEOUT=300
WORKING_DIR=./rag_storage
INPUT_DIR=./inputs
LOG_LEVEL=INFO
# =============================================================================
# LLM CONFIGURATION
# =============================================================================
LLM_BINDING=openai
LLM_MODEL=gpt-4o-mini
LLM_BINDING_HOST=https://api.openai.com/v1
LLM_BINDING_API_KEY=sk-xxx
MAX_ASYNC=4
ENABLE_LLM_CACHE=true
# =============================================================================
# EMBEDDING CONFIGURATION
# =============================================================================
EMBEDDING_BINDING=openai
EMBEDDING_MODEL=text-embedding-ada-002
EMBEDDING_DIM=1536
EMBEDDING_BINDING_API_KEY=sk-xxx
EMBEDDING_FUNC_MAX_ASYNC=8
EMBEDDING_BATCH_NUM=10
# =============================================================================
# STORAGE CONFIGURATION
# =============================================================================
LIGHTRAG_KV_STORAGE=JsonKVStorage
LIGHTRAG_VECTOR_STORAGE=NanoVectorDBStorage
LIGHTRAG_GRAPH_STORAGE=NetworkXStorage
LIGHTRAG_DOC_STATUS_STORAGE=JsonDocStatusStorage
# PostgreSQL (if using PG storage)
# POSTGRES_HOST=localhost
# POSTGRES_PORT=5432
# POSTGRES_USER=lightrag
# POSTGRES_PASSWORD=secret
# POSTGRES_DATABASE=lightrag
# Neo4j (if using Neo4J storage)
# NEO4J_URI=bolt://localhost:7687
# NEO4J_USERNAME=neo4j
# NEO4J_PASSWORD=secret
# =============================================================================
# DOCUMENT PROCESSING
# =============================================================================
CHUNK_SIZE=1200
CHUNK_OVERLAP_SIZE=100
SUMMARY_LANGUAGE=English
SUMMARY_MAX_TOKENS=1200
SUMMARY_CONTEXT_SIZE=12000
# =============================================================================
# QUERY CONFIGURATION
# =============================================================================
TOP_K=40
CHUNK_TOP_K=20
MAX_ENTITY_TOKENS=6000
MAX_RELATION_TOKENS=8000
MAX_TOTAL_TOKENS=30000
COSINE_THRESHOLD=0.2
# =============================================================================
# RERANKING (optional)
# =============================================================================
# RERANK_BINDING=cohere
# RERANK_MODEL=rerank-english-v2.0
# RERANK_BINDING_API_KEY=xxx
# =============================================================================
# AUTHENTICATION
# =============================================================================
AUTH_USER=admin
AUTH_PASS=admin123
TOKEN_SECRET=your-secure-secret-key
TOKEN_EXPIRE_HOURS=48
CORS_ORIGINS=*
# =============================================================================
# MULTI-TENANCY (optional)
# =============================================================================
# ENABLE_MULTI_TENANTS=true
# LIGHTRAG_MULTI_TENANT_STRICT=true
# LIGHTRAG_REQUIRE_USER_AUTH=true
# LIGHTRAG_SUPER_ADMIN_USERS=admin
11. Python LightRAG Dataclass
@dataclass
class LightRAG:
# Directory configuration
working_dir: str = "./rag_storage"
# LLM configuration
llm_model_name: str = "gpt-4o-mini"
llm_model_func: Callable = openai_complete_if_cache
llm_model_max_async: int = 4
llm_model_max_token_size: int = 32768
llm_model_kwargs: dict = field(default_factory=dict)
# Embedding configuration
embedding_model_name: str = "text-embedding-ada-002"
embedding_func: EmbeddingFunc = None
embedding_batch_num: int = 10
embedding_func_max_async: int = 8
# Chunking configuration
chunk_token_size: int = 1200
chunk_overlap_token_size: int = 100
tiktoken_model_name: str = "gpt-4o"
# Entity extraction
entity_extract_max_gleaning: int = 1
entity_summary_to_max_tokens: int = 1200
# Storage backends
kv_storage: str = "JsonKVStorage"
vector_storage: str = "NanoVectorDBStorage"
graph_storage: str = "NetworkXStorage"
doc_status_storage: str = "JsonDocStatusStorage"
# Advanced options
enable_llm_cache: bool = True
enable_llm_cache_for_entity_extract: bool = True
auto_manage_storages_states: bool = True
# Namespace (for multi-tenancy)
namespace: str = None
Related Documentation: