mirror of
https://github.com/HKUDS/LightRAG.git
synced 2025-07-12 03:21:01 +00:00
177 lines
3.8 KiB
Markdown
177 lines
3.8 KiB
Markdown
# 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/HKUDS/LightRAG.git
|
|
cd LightRAG
|
|
```
|
|
```powershell
|
|
# Windows PowerShell
|
|
git clone https://github.com/HKUDS/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://host.docker.internal:11434
|
|
LLM_MODEL=mistral
|
|
EMBEDDING_BINDING=ollama
|
|
EMBEDDING_BINDING_HOST=http://host.docker.internal:11434
|
|
EMBEDDING_MODEL=bge-m3
|
|
```
|
|
|
|
you can't just use localhost from docker, that's why you need to use host.docker.internal which is defined in the docker compose file and should allow you to access the localhost services.
|
|
|
|
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
|
|
```
|