Reorganize env config sections, add data store config to env file.

• Add namespace prefix config option
• Make AGE graph name optional
• Update env variable requirements
• Add comments for deprecated options
This commit is contained in:
yangdx 2025-02-12 21:48:48 +08:00
parent fc0f522ed5
commit cf61bed62c
3 changed files with 65 additions and 55 deletions

View File

@ -1,12 +1,30 @@
# Server Configuration ### Server Configuration
HOST=0.0.0.0 #HOST=0.0.0.0
PORT=9621 #PORT=9621
#NAMESPACE_PREFIX=lightrag # separating data from difference Lightrag instances
# Directory Configuration ### Optional SSL Configuration
WORKING_DIR=/app/data/rag_storage #SSL=true
INPUT_DIR=/app/data/inputs #SSL_CERTFILE=/path/to/cert.pem
#SSL_KEYFILE=/path/to/key.pem
# RAG Configuration ### Security (empty for no api-key is needed)
# LIGHTRAG_API_KEY=your-secure-api-key-here
### Directory Configuration
# WORKING_DIR=./rag_storage
# INPUT_DIR=./inputs
### Logging level
LOG_LEVEL=INFO
### Optional Timeout
TIMEOUT=300
# Ollama Emulating Model Tag
# OLLAMA_EMULATING_MODEL_TAG=latest
### RAG Configuration
MAX_ASYNC=4 MAX_ASYNC=4
MAX_TOKENS=32768 MAX_TOKENS=32768
EMBEDDING_DIM=1024 EMBEDDING_DIM=1024
@ -17,53 +35,39 @@ MAX_EMBED_TOKENS=8192
#COSINE_THRESHOLD=0.4 # 0.2 while not running API server #COSINE_THRESHOLD=0.4 # 0.2 while not running API server
#TOP_K=50 # 60 while not running API server #TOP_K=50 # 60 while not running API server
# LLM Configuration (Use valid host. For local services, you can use host.docker.internal) ### LLM Configuration (Use valid host. For local services, you can use host.docker.internal)
# Ollama example ### Ollama example
LLM_BINDING=ollama LLM_BINDING=ollama
LLM_BINDING_HOST=http://host.docker.internal:11434 LLM_BINDING_HOST=http://host.docker.internal:11434
LLM_MODEL=mistral-nemo:latest LLM_MODEL=mistral-nemo:latest
# OpenAI alike example ### OpenAI alike example
# LLM_BINDING=openai # LLM_BINDING=openai
# LLM_MODEL=deepseek-chat # LLM_MODEL=deepseek-chat
# LLM_BINDING_HOST=https://api.deepseek.com # LLM_BINDING_HOST=https://api.deepseek.com
# LLM_BINDING_API_KEY=your_api_key # LLM_BINDING_API_KEY=your_api_key
# for OpenAI LLM (LLM_BINDING_API_KEY take priority) ### for OpenAI LLM (LLM_BINDING_API_KEY take priority)
# OPENAI_API_KEY=your_api_key # OPENAI_API_KEY=your_api_key
# Lollms example ### Lollms example
# LLM_BINDING=lollms # LLM_BINDING=lollms
# LLM_BINDING_HOST=http://host.docker.internal:9600 # LLM_BINDING_HOST=http://host.docker.internal:9600
# LLM_MODEL=mistral-nemo:latest # LLM_MODEL=mistral-nemo:latest
# Embedding Configuration (Use valid host. For local services, you can use host.docker.internal) ### Embedding Configuration (Use valid host. For local services, you can use host.docker.internal)
# Ollama example # Ollama example
EMBEDDING_BINDING=ollama EMBEDDING_BINDING=ollama
EMBEDDING_BINDING_HOST=http://host.docker.internal:11434 EMBEDDING_BINDING_HOST=http://host.docker.internal:11434
EMBEDDING_MODEL=bge-m3:latest EMBEDDING_MODEL=bge-m3:latest
# Lollms example ### Lollms example
# EMBEDDING_BINDING=lollms # EMBEDDING_BINDING=lollms
# EMBEDDING_BINDING_HOST=http://host.docker.internal:9600 # EMBEDDING_BINDING_HOST=http://host.docker.internal:9600
# EMBEDDING_MODEL=bge-m3:latest # EMBEDDING_MODEL=bge-m3:latest
# Security (empty for no key) ### Optional for Azure (LLM_BINDING_HOST, LLM_BINDING_API_KEY take priority)
LIGHTRAG_API_KEY=your-secure-api-key-here
# Logging
LOG_LEVEL=INFO
# Optional SSL Configuration
#SSL=true
#SSL_CERTFILE=/path/to/cert.pem
#SSL_KEYFILE=/path/to/key.pem
# Optional Timeout
#TIMEOUT=30
# Optional for Azure (LLM_BINDING_HOST, LLM_BINDING_API_KEY take priority)
# AZURE_OPENAI_API_VERSION=2024-08-01-preview # AZURE_OPENAI_API_VERSION=2024-08-01-preview
# AZURE_OPENAI_DEPLOYMENT=gpt-4o # AZURE_OPENAI_DEPLOYMENT=gpt-4o
# AZURE_OPENAI_API_KEY=myapikey # AZURE_OPENAI_API_KEY=myapikey
@ -72,54 +76,57 @@ LOG_LEVEL=INFO
# AZURE_EMBEDDING_DEPLOYMENT=text-embedding-3-large # AZURE_EMBEDDING_DEPLOYMENT=text-embedding-3-large
# AZURE_EMBEDDING_API_VERSION=2023-05-15 # AZURE_EMBEDDING_API_VERSION=2023-05-15
# Ollama Emulating Model Tag ### Data storage selection
# OLLAMA_EMULATING_MODEL_TAG=latest
# Data storage selection
# LIGHTRAG_KV_STORAGE=PGKVStorage # LIGHTRAG_KV_STORAGE=PGKVStorage
# LIGHTRAG_VECTOR_STORAGE=PGVectorStorage # LIGHTRAG_VECTOR_STORAGE=PGVectorStorage
# LIGHTRAG_GRAPH_STORAGE=PGGraphStorage # LIGHTRAG_GRAPH_STORAGE=PGGraphStorage
# LIGHTRAG_DOC_STATUS_STORAGE=PGDocStatusStorage # LIGHTRAG_DOC_STATUS_STORAGE=PGDocStatusStorage
# Oracle Database Configuration ### Oracle Database Configuration
ORACLE_DSN=localhost:1521/XEPDB1 ORACLE_DSN=localhost:1521/XEPDB1
ORACLE_USER=your_username ORACLE_USER=your_username
ORACLE_PASSWORD='your_password' ORACLE_PASSWORD='your_password'
ORACLE_CONFIG_DIR=/path/to/oracle/config ORACLE_CONFIG_DIR=/path/to/oracle/config
ORACLE_WALLET_LOCATION=/path/to/wallet # 可选 #ORACLE_WALLET_LOCATION=/path/to/wallet # optional
#ORACLE_WALLET_PASSWORD='your_password' # 可选 #ORACLE_WALLET_PASSWORD='your_password' # optional
#ORACLE_WORKSPACE=default # 可选,默认为default #ORACLE_WORKSPACE=default # separating all data from difference Lightrag instances(deprecated, use NAMESPACE_PREFIX in future)
# TiDB Configuration ### TiDB Configuration
TIDB_HOST=localhost TIDB_HOST=localhost
TIDB_PORT=4000 TIDB_PORT=4000
TIDB_USER=your_username TIDB_USER=your_username
TIDB_PASSWORD='your_password' TIDB_PASSWORD='your_password'
TIDB_DATABASE=your_database TIDB_DATABASE=your_database
#TIDB_WORKSPACE=default # 可选,默认为default #TIDB_WORKSPACE=default # separating all data from difference Lightrag instances(deprecated, use NAMESPACE_PREFIX in future)
# PostgreSQL Configuration ### PostgreSQL Configuration
POSTGRES_HOST=localhost POSTGRES_HOST=localhost
POSTGRES_PORT=5432 POSTGRES_PORT=5432
POSTGRES_USER=your_username POSTGRES_USER=your_username
POSTGRES_PASSWORD='your_password' POSTGRES_PASSWORD='your_password'
POSTGRES_DATABASE=your_database POSTGRES_DATABASE=your_database
#POSTGRES_WORKSPACE=default # 可选,默认为default #POSTGRES_WORKSPACE=default # separating all data from difference Lightrag instances(deprecated, use NAMESPACE_PREFIX in future)
# AGE Configuration
AGE_GRAPH_NAME=dickens
# Database Configurations ### Independent AGM Configuration(not for AMG embedded in PostreSQL)
# Neo4j AGE_POSTGRES_DB=
AGE_POSTGRES_USER=
AGE_POSTGRES_PASSWORD=
AGE_POSTGRES_HOST=
# AGE_POSTGRES_PORT=8529
# AGE Graph Name(apply to PostgreSQL and independent AGM)
# AGE_GRAPH_NAME=lightrag # deprecated, use NAME_SPACE_PREFIX instead
### Neo4j Configuration
NEO4J_URI=neo4j+s://xxxxxxxx.databases.neo4j.io NEO4J_URI=neo4j+s://xxxxxxxx.databases.neo4j.io
NEO4J_USERNAME=neo4j NEO4J_USERNAME=neo4j
NEO4J_PASSWORD='your_password' NEO4J_PASSWORD='your_password'
# MongoDB (可选) ### MongoDB Configuration
MONGODB_URI=mongodb+srv://name:password@your-cluster-address MONGODB_URI=mongodb://root:root@localhost:27017/
MONGODB_DATABASE=lightrag MONGODB_DATABASE=LightRAG
MONGODB_GRAPH=false MONGODB_GRAPH=false # deprecated (keep for backward compatibility)
# Qdrant ### Qdrant
QDRANT_URL=http://localhost:16333 QDRANT_URL=http://localhost:16333
QDRANT_API_KEY=your-api-key # 可选 QDRANT_API_KEY=your-api-key # 可选

View File

@ -75,8 +75,8 @@ class AGEStorage(BaseGraphStorage):
.replace("'", "\\'") .replace("'", "\\'")
) )
HOST = os.environ["AGE_POSTGRES_HOST"].replace("\\", "\\\\").replace("'", "\\'") HOST = os.environ["AGE_POSTGRES_HOST"].replace("\\", "\\\\").replace("'", "\\'")
PORT = int(os.environ["AGE_POSTGRES_PORT"]) PORT = os.environ.get("AGE_POSTGRES_PORT", "8529")
self.graph_name = os.environ["AGE_GRAPH_NAME"] self.graph_name = namespace or os.environ.get("AGE_GRAPH_NAME", "lightrag")
connection_string = f"dbname='{DB}' user='{USER}' password='{PASSWORD}' host='{HOST}' port={PORT}" connection_string = f"dbname='{DB}' user='{USER}' password='{PASSWORD}' host='{HOST}' port={PORT}"

View File

@ -107,10 +107,13 @@ STORAGE_ENV_REQUIREMENTS = {
"AGE_POSTGRES_DB", "AGE_POSTGRES_DB",
"AGE_POSTGRES_USER", "AGE_POSTGRES_USER",
"AGE_POSTGRES_PASSWORD", "AGE_POSTGRES_PASSWORD",
"AGE_GRAPH_NAME",
], ],
"GremlinStorage": ["GREMLIN_HOST", "GREMLIN_PORT", "GREMLIN_GRAPH"], "GremlinStorage": ["GREMLIN_HOST", "GREMLIN_PORT", "GREMLIN_GRAPH"],
"PGGraphStorage": ["POSTGRES_USER", "POSTGRES_PASSWORD", "POSTGRES_DATABASE"], "PGGraphStorage": [
"POSTGRES_USER",
"POSTGRES_PASSWORD",
"POSTGRES_DATABASE",
],
"OracleGraphStorage": [ "OracleGraphStorage": [
"ORACLE_DSN", "ORACLE_DSN",
"ORACLE_USER", "ORACLE_USER",