LightRAG项目Docker部署指南:构建轻量级知识图谱增强生成系统
项目概述
LightRAG是一个轻量级的基于知识图谱的检索增强生成(RAG)系统,支持多种大语言模型(LLM)后端。该系统通过结合知识图谱的结构化信息检索能力与大语言模型的生成能力,能够提供更准确、更具上下文的回答。
环境准备
在开始部署前,请确保您的系统满足以下要求:
- 操作系统:支持Windows、Linux和MacOS
- Docker环境:已安装Docker及Docker Compose
- 硬件要求:
- 建议至少8GB内存
- 建议使用SSD存储以获得更好的性能
Docker部署步骤
1. 获取项目代码
首先需要获取LightRAG的源代码。可以通过版本控制工具获取最新代码。
2. 配置文件准备
LightRAG使用环境变量文件(.env)进行配置:
cp .env.example .env
然后编辑.env文件,根据您的需求配置各项参数。
3. 构建并启动容器
使用以下命令一键构建并启动所有服务:
docker-compose up -d
此命令会在后台启动所有必要的服务容器。
核心配置详解
服务器配置
HOST
:服务监听地址,默认0.0.0.0表示监听所有网络接口PORT
:服务端口号,默认为9621
LLM后端配置
LightRAG支持多种LLM后端:
-
本地部署模型:
- 使用ollama或lollms作为后端
- 需要指定模型服务器地址和模型名称
-
云端模型:
- 支持OpenAI等云端API
- 需要提供相应的API密钥
嵌入模型配置
同样支持多种嵌入模型后端,配置方式与LLM类似:
EMBEDDING_BINDING
:指定嵌入模型后端EMBEDDING_MODEL
:指定使用的嵌入模型
安全配置
LIGHTRAG_API_KEY
:设置API访问密钥,保护您的服务- 生产环境建议启用SSL加密
数据存储结构
LightRAG使用以下目录结构管理数据:
data/
├── rag_storage/ # 存储RAG系统的持久化数据
└── inputs/ # 存放待处理的输入文档
在Docker部署中,这些目录会自动挂载到容器内部,确保数据持久化。
典型部署场景示例
场景1:使用本地Ollama服务
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
注意:在Docker容器内不能直接使用localhost访问宿主机服务,必须使用host.docker.internal这个特殊域名。
场景2:使用OpenAI云端服务
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使用指南
服务启动后,可以通过以下方式与API交互:
使用curl发送查询
curl -X POST "http://localhost:9621/query" \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"query": "您的问题"}'
使用PowerShell发送查询
$headers = @{
"X-API-Key" = "your-api-key"
"Content-Type" = "application/json"
}
$body = @{
query = "您的问题"
} | ConvertTo-Json
Invoke-RestMethod -Uri "http://localhost:9621/query" -Method Post -Headers $headers -Body $body
系统维护
更新容器
docker-compose pull
docker-compose up -d --build
日志查看
docker-compose logs -f
安全建议
- API密钥保护:务必设置强密码作为API密钥
- 网络隔离:生产环境应将服务部署在内网或配置适当的防火墙规则
- 数据加密:敏感数据传输应使用HTTPS加密
- 定期备份:定期备份data目录下的重要数据
性能调优建议
- 根据硬件配置调整
MAX_ASYNC
参数控制并发量 - 根据模型能力调整
MAX_TOKENS
参数优化响应长度 - 对于大规模知识库,考虑增加
EMBEDDING_DIM
提升检索精度
通过以上步骤,您已经成功部署了LightRAG系统。这套轻量级的RAG解决方案可以灵活适配不同的LLM后端,为您的应用提供强大的知识增强生成能力。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考