离线部署
此页面内容来自 DeepWiki 重组后的对应页面(来源:8-3.zh.md)
多站点与离线部署
相关源文件
本章引用的主要源码文件:
docs/FrontendBuildGuide.mddocs/MultiSiteDeployment.mddocs/OfflineDeployment.mdlightrag_webui/.env.developmentlightrag_webui/README.mdlightrag_webui/env.development.smaplelightrag_webui/env.local.samplelightrag_webui/src/components/ui/Badge.tsxlightrag_webui/src/components/ui/Button.tsxlightrag_webui/src/components/ui/Command.tsxlightrag_webui/src/components/ui/UserPromptInputWithHistory.tsxlightrag_webui/src/vite-env.d.tspyproject.tomlrequirements-offline-llm.txtrequirements-offline-storage.txtrequirements-offline.txttests/test_path_prefixes.pyuv.lock
本节介绍 LightRAG 的高级部署模式,重点关注网络受限环境(气隙环境)的生产部署、高密度托管需求(多站点)以及本地推理集成。
多站点部署
LightRAG 支持使用"一次构建,多处部署"的架构在单台服务器上托管多个隔离实例 docs/MultiSiteDeployment.md:24-31。这是通过运行时配置注入实现的,允许同一 WebUI 构建版本在任何 URL 前缀下工作而无需重新编译。
运行时前缀注入
FastAPI 服务器使用自定义类 SmartStaticFiles 来拦截对 WebUI 的 index.html 的请求 lightrag/api/lightrag_server.py:37-44。它会将占位符注释 <!-- __LIGHTRAG_RUNTIME_CONFIG__ --> 替换为包含动态 window.__LIGHTRAG_CONFIG__ 对象的 <script> 标签 docs/MultiSiteDeployment.md:37-44。
关键配置变量:
| 变量 | 默认值 | 作用 |
|---|---|---|
LIGHTRAG_API_PREFIX | "" | 反向代理使用的路径前缀(例如 /site01)。作为 root_path 传递给 FastAPI docs/MultiSiteDeployment.md:74-76。 |
LIGHTRAG_WEBUI_PATH | /webui | 前端资源的内部挂载点 docs/MultiSiteDeployment.md:78-79。 |
数据流:多站点反向代理
下图展示了单个 Nginx 实例如何使用基于路径的路由将流量分发到两个隔离的 LightRAG 容器。
多站点路由架构
来源:docs/MultiSiteDeployment.md:45-64,docs/MultiSiteDeployment.md:131-158
离线部署
LightRAG 提供分层依赖模型以方便在气隙环境中部署。这可以防止系统在运行时尝试使用 pipmaster 进行动态包安装 docs/OfflineDeployment.md:18-22。
依赖组
依赖项在 pyproject.toml 中按类别划分,以实现最小化安装 pyproject.toml:103-133:
lightrag-hku[api]:核心服务器和文档解析器(pypdf、python-docx等)pyproject.toml:54-101。lightrag-hku[offline-storage]:Redis、Neo4j、Milvus、MongoDB 和 PostgreSQL 的驱动程序pyproject.toml:104-114。lightrag-hku[offline-llm]:兼容 OpenAI 的 API、Ollama、Anthropic 和 LlamaIndex 的绑定pyproject.toml:116-128。lightrag-hku[offline]:上述所有依赖的完整捆绑包pyproject.toml:130-133。
Tiktoken 缓存管理
TiktokenTokenizer 需要通常从 OpenAI 的 CDN 下载的 BPE 模型文件。对于离线使用,必须预先缓存这些文件 docs/OfflineDeployment.md:114-116。
- 下载:在在线环境中使用
lightrag-download-cacheCLI 工具docs/OfflineDeployment.md:120-131。 - 传输:将生成的目录(默认为
~/.tiktoken_cache)移动到离线服务器docs/OfflineDeployment.md:143-155。 - 配置:设置
TIKTOKEN_CACHE_DIR环境变量docs/OfflineDeployment.md:146-147。
使用 vLLM 进行本地推理
对于完全离线的检索增强生成(RAG),LightRAG 集成了本地推理服务器,例如 vLLM 或 Ollama。这些服务器充当 LLM_BINDING 和 EMBEDDING_BINDING docs/OfflineDeployment.md:26-29。
离线组件关联
来源:docs/OfflineDeployment.md:114-155,lightrag/api/lightrag_server.py:1-20,pyproject.toml:154-160
气隙环境的 WebUI 构建指南
WebUI 是一个 React 单页应用(SPA),必须在可以使用 bun 或 npm 的环境中构建后才能部署 lightrag_webui/README.md:5-29。
构建流程
- 环境准备:在
lightrag_webui目录中,使用bun install --frozen-lockfile安装依赖lightrag_webui/README.md:17-19。 - 生产构建:运行
bun run buildlightrag_webui/README.md:21-27。 - 制品位置:构建过程将静态资源输出到
lightrag/api/webui/。这些资源随后通过package-data包含在 Python 包中pyproject.toml:177-178。
气隙传输
如果目标服务器无法运行构建过程:
- 在持续集成/持续部署(CI/CD)运行器或开发机器上构建 UI。
- 归档
lightrag/api/webui/目录。 - 将归档文件解压到生产服务器上的 LightRAG 安装路径中。
- FastAPI 服务器的
SmartStaticFiles会自动检测并提供这些文件docs/MultiSiteDeployment.md:37-44。
开发模拟
要在开发过程中测试多站点配置而无需完整的 Nginx 设置,可以在 WebUI 的 .env.development 文件中使用 VITE_DEV_API_PREFIX lightrag_webui/src/vite-env.d.ts:29-31。这会指示 Vite 开发服务器模拟反向代理的路径剥离行为 lightrag_webui/env.local.sample:24-27。
来源:lightrag_webui/README.md:1-40,lightrag_webui/env.local.sample:5-20,pyproject.toml:171-178