# LightRAG A lightweight Knowledge Graph Retrieval-Augmented Generation system with multiple LLM backend support. ## 🚀 Installation ### Prerequisites - Python 3.10+ - Git - Docker (optional for Docker deployment) ### Native Installation 1. Clone the repository: ```bash # Linux/MacOS git clone https://github.com/ParisNeo/LightRAG.git cd LightRAG ``` ```powershell # Windows PowerShell git clone https://github.com/ParisNeo/LightRAG.git cd LightRAG ``` 2. Configure your environment: ```bash # Linux/MacOS cp .env.example .env # Edit .env with your preferred configuration ``` ```powershell # Windows PowerShell Copy-Item .env.example .env # Edit .env with your preferred configuration ``` 3. Create and activate virtual environment: ```bash # Linux/MacOS python -m venv venv source venv/bin/activate ``` ```powershell # Windows PowerShell python -m venv venv .\venv\Scripts\Activate ``` 4. Install dependencies: ```bash # Both platforms pip install -r requirements.txt ``` ## 🐳 Docker Deployment Docker instructions work the same on all platforms with Docker Desktop installed. 1. Build and start the container: ```bash docker-compose up -d ``` ### Configuration Options LightRAG can be configured using environment variables in the `.env` file: #### Server Configuration - `HOST`: Server host (default: 0.0.0.0) - `PORT`: Server port (default: 9621) #### LLM Configuration - `LLM_BINDING`: LLM backend to use (lollms/ollama/openai) - `LLM_BINDING_HOST`: LLM server host URL - `LLM_MODEL`: Model name to use #### Embedding Configuration - `EMBEDDING_BINDING`: Embedding backend (lollms/ollama/openai) - `EMBEDDING_BINDING_HOST`: Embedding server host URL - `EMBEDDING_MODEL`: Embedding model name #### RAG Configuration - `MAX_ASYNC`: Maximum async operations - `MAX_TOKENS`: Maximum token size - `EMBEDDING_DIM`: Embedding dimensions - `MAX_EMBED_TOKENS`: Maximum embedding token size #### Security - `LIGHTRAG_API_KEY`: API key for authentication ### Data Storage Paths The system uses the following paths for data storage: ``` data/ ├── rag_storage/ # RAG data persistence └── inputs/ # Input documents ``` ### Example Deployments 1. Using with Ollama: ```env LLM_BINDING=ollama LLM_BINDING_HOST=http://localhost:11434 LLM_MODEL=mistral EMBEDDING_BINDING=ollama EMBEDDING_BINDING_HOST=http://localhost:11434 EMBEDDING_MODEL=bge-m3 ``` 2. Using with OpenAI: ```env LLM_BINDING=openai LLM_MODEL=gpt-3.5-turbo EMBEDDING_BINDING=openai EMBEDDING_MODEL=text-embedding-ada-002 OPENAI_API_KEY=your-api-key ``` ### API Usage Once deployed, you can interact with the API at `http://localhost:9621` Example query using PowerShell: ```powershell $headers = @{ "X-API-Key" = "your-api-key" "Content-Type" = "application/json" } $body = @{ query = "your question here" } | ConvertTo-Json Invoke-RestMethod -Uri "http://localhost:9621/query" -Method Post -Headers $headers -Body $body ``` Example query using curl: ```bash curl -X POST "http://localhost:9621/query" \ -H "X-API-Key: your-api-key" \ -H "Content-Type: application/json" \ -d '{"query": "your question here"}' ``` ## 🔒 Security Remember to: 1. Set a strong API key in production 2. Use SSL in production environments 3. Configure proper network security ## 📦 Updates To update the Docker container: ```bash docker-compose pull docker-compose up -d --build ``` To update native installation: ```bash # Linux/MacOS git pull source venv/bin/activate pip install -r requirements.txt ``` ```powershell # Windows PowerShell git pull .\venv\Scripts\Activate pip install -r requirements.txt ```