agentic_huge_data_base / wiki
页面 LightRAG · 7.5 离线部署·DeepWiki 中文全文译文

7.5 · 离线部署(Offline Deployment)

轻量图谱增强检索 · 聚焦本章的模块关系、源码依据与实现要点。

项目LightRAG 章节7.5 状态全文译文 模块存储与持久化、检索、召回与索引、接口与服务契约、模型调用与提供方适配
源码线索
  • docs/LightRAG-API-Server.assets/image-20250323122538997.png
  • docs/LightRAG-API-Server.assets/image-20250323122754387.png
  • docs/LightRAG-API-Server.assets/image-20250323123011220.png
  • docs/LightRAG-API-Server.assets/image-20250323194750379.png
  • docs/OfflineDeployment.md
  • lightrag/llm/binding_options.py
  • pyproject.toml
  • requirements-offline-llm.txt
  • requirements-offline-storage.txt
  • requirements-offline.txt
模块标签
  • 存储与持久化
  • 检索、召回与索引
  • 接口与服务契约
  • 模型调用与提供方适配
  • 安装与启动

章节正文

离线部署

此页面内容来自 DeepWiki 重组后的对应页面(来源:8-3.zh.md)

多站点与离线部署

相关源文件

本章引用的主要源码文件:

  • docs/FrontendBuildGuide.md
  • docs/MultiSiteDeployment.md
  • docs/OfflineDeployment.md
  • lightrag_webui/.env.development
  • lightrag_webui/README.md
  • lightrag_webui/env.development.smaple
  • lightrag_webui/env.local.sample
  • lightrag_webui/src/components/ui/Badge.tsx
  • lightrag_webui/src/components/ui/Button.tsx
  • lightrag_webui/src/components/ui/Command.tsx
  • lightrag_webui/src/components/ui/UserPromptInputWithHistory.tsx
  • lightrag_webui/src/vite-env.d.ts
  • pyproject.toml
  • requirements-offline-llm.txt
  • requirements-offline-storage.txt
  • requirements-offline.txt
  • tests/test_path_prefixes.py
  • uv.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 容器。

多站点路由架构

LightRAG · 数据流:多站点反向代理 · 图 1
LightRAG · 数据流:多站点反向代理 · 图 1

来源:docs/MultiSiteDeployment.md:45-64docs/MultiSiteDeployment.md:131-158

离线部署

LightRAG 提供分层依赖模型以方便在气隙环境中部署。这可以防止系统在运行时尝试使用 pipmaster 进行动态包安装 docs/OfflineDeployment.md:18-22

依赖组

依赖项在 pyproject.toml 中按类别划分,以实现最小化安装 pyproject.toml:103-133

  • lightrag-hku[api]:核心服务器和文档解析器(pypdfpython-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

  1. 下载:在在线环境中使用 lightrag-download-cache CLI 工具 docs/OfflineDeployment.md:120-131
  2. 传输:将生成的目录(默认为 ~/.tiktoken_cache)移动到离线服务器 docs/OfflineDeployment.md:143-155
  3. 配置:设置 TIKTOKEN_CACHE_DIR 环境变量 docs/OfflineDeployment.md:146-147
使用 vLLM 进行本地推理

对于完全离线的检索增强生成(RAG),LightRAG 集成了本地推理服务器,例如 vLLMOllama。这些服务器充当 LLM_BINDINGEMBEDDING_BINDING docs/OfflineDeployment.md:26-29

离线组件关联

LightRAG · 使用 vLLM 进行本地推理 · 图 2
LightRAG · 使用 vLLM 进行本地推理 · 图 2

来源:docs/OfflineDeployment.md:114-155lightrag/api/lightrag_server.py:1-20pyproject.toml:154-160

气隙环境的 WebUI 构建指南

WebUI 是一个 React 单页应用(SPA),必须在可以使用 bunnpm 的环境中构建后才能部署 lightrag_webui/README.md:5-29

构建流程
  1. 环境准备:在 lightrag_webui 目录中,使用 bun install --frozen-lockfile 安装依赖 lightrag_webui/README.md:17-19
  2. 生产构建:运行 bun run build lightrag_webui/README.md:21-27
  3. 制品位置:构建过程将静态资源输出到 lightrag/api/webui/。这些资源随后通过 package-data 包含在 Python 包中 pyproject.toml:177-178
气隙传输

如果目标服务器无法运行构建过程:

  1. 在持续集成/持续部署(CI/CD)运行器或开发机器上构建 UI。
  2. 归档 lightrag/api/webui/ 目录。
  3. 将归档文件解压到生产服务器上的 LightRAG 安装路径中。
  4. 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-40lightrag_webui/env.local.sample:5-20pyproject.toml:171-178