前端构建系统
此页面内容来自 DeepWiki 重组后的对应页面(来源:7.zh.md)
网页界面(lightrag_webui)
相关源文件
本章引用的主要源码文件:
lightrag_webui/bun.locklightrag_webui/index.htmllightrag_webui/package.jsonlightrag_webui/src/App.tsxlightrag_webui/src/AppRouter.tsxlightrag_webui/src/components/retrieval/ChatMessage.tsxlightrag_webui/src/features/LoginPage.tsxlightrag_webui/src/features/SiteHeader.tsxlightrag_webui/src/lib/constants.tslightrag_webui/src/services/navigation.tslightrag_webui/src/stores/state.tslightrag_webui/vite.config.ts
lightrag_webui 是一个现代化、响应式的 React 前端界面,用于管理和操作 LightRAG 引擎。它提供了文档生命周期管理、知识图谱探索和实时检索测试的可视化界面。
概述与技术栈
Web UI 采用React 19 和 TypeScript 构建为单页应用(SPA),并使用 Vite 进行打包。它采用模块化架构,功能模块与核心 UI 组件解耦。
核心技术
- 框架:React 19 搭配 TypeScript。
- 状态管理:Zustand 用于轻量级、多存储的状态管理(认证、设置、图谱和后端状态)。
- 图谱渲染:Sigma.js 和 Graphology 用于高性能的 WebGL 可视化。
- 样式:Tailwind CSS 4 和 Radix UI 原语用于可访问的主题化组件。
- API 客户端:Axios 配合拦截器实现 JWT 认证和错误处理。
- 国际化:i18next 支持 10 种以上语言。
系统架构:UI 到代码实体的映射
下图展示了高层 UI 功能如何映射到具体的 React 组件和状态存储。
UI 组件架构
来源:lightrag_webui/src/AppRouter.tsx:69-76, lightrag_webui/src/App.tsx:14-20, lightrag_webui/src/stores/state.ts:7-45
通信与运行时配置
Web UI 通过 REST API 与 FastAPI 后端通信。它支持动态路径前缀,可以部署在反向代理后的任意子路径下(例如 /site01/webui/)。
运行时注入
为确保开发环境(vite dev)和生产环境(FastAPI 静态文件服务)之间的一致性,后端会将配置片段注入到 index.html 中。
- Vite 插件:
lightragRuntimeConfigPlugin在开发期间模拟后端的注入逻辑lightrag_webui/vite.config.ts:26-42。 - 基础 URL:
backendBaseUrl和webuiPrefix在运行时通过window.__LIGHTRAG_CONFIG__解析lightrag_webui/src/lib/constants.ts:5-6。
认证流程
系统支持标准的 JWT 认证和"访客模式"(后端禁用认证时使用)。
- 登录:由
LoginPage处理,调用loginToServer方法lightrag_webui/src/features/LoginPage.tsx:96。 - 认证存储:
useAuthStore管理令牌和会话状态lightrag_webui/src/stores/state.ts:29-45。 - 导航:
NavigationService在登出时处理状态重置,防止用户间数据泄露lightrag_webui/src/services/navigation.ts:22-50。
后端交互流程
来源:lightrag_webui/src/stores/state.ts:59-116, lightrag_webui/src/App.tsx:60-72
主要 UI 功能
Web UI 分为四个主要功能区域,可通过 SiteHeader 导航访问 lightrag_webui/src/features/SiteHeader.tsx:34-56。
1. 文档管理器
DocumentManager 提供基于表格的视图来管理入库管线。它监控后端的"忙碌"状态,并提供上传文件、扫描目录和删除已处理文档的界面。它采用智能轮询机制,根据管线活动调整轮询频率。
- 详情请参阅 文档管理器 UI
2. 知识图谱查看器
GraphViewer 利用 Sigma.js 渲染提取的实体和关系。它允许用户使用 MiniSearch 搜索节点、展开/剪枝子图,并直接在浏览器中编辑实体属性。
- 详情请参阅 知识图谱查看器
3. 检索测试
RetrievalTesting 界面允许用户对检索增强生成(RAG)引擎执行查询。它支持所有 LightRAG 查询模式(本地、全局、混合等),并渲染支持完整 Markdown、LaTeX(通过 KaTeX)和 Mermaid 图表的响应。
- 详情请参阅 检索测试与设置 UI
4. 设置与本地化
全局应用设置(包括语言选择、主题(亮色/暗色)和图谱可视化参数)通过 AppSettings 管理,并使用 useSettingsStore 持久化。
- 详情请参阅 检索测试与设置 UI
来源: 技术栈:lightrag_webui/package.json:18-82 应用结构:lightrag_webui/src/App.tsx:14-20, lightrag_webui/src/AppRouter.tsx:69-76 状态管理:lightrag_webui/src/stores/state.ts:7-45 路径处理:lightrag_webui/vite.config.ts:26-42, lightrag_webui/src/lib/constants.ts:5-6 导航/认证:lightrag_webui/src/services/navigation.ts:22-50, lightrag_webui/src/features/LoginPage.tsx:96