gzdaniel commited on
Commit
ec22e9b
·
2 Parent(s): 0754aaa 69aec83

Merge branch 'main' into add-Memgraph-graph-db

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. README-zh.md +4 -0
  2. README.md +4 -0
  3. env.example +6 -7
  4. lightrag/api/README-zh.md +43 -39
  5. lightrag/api/README.md +44 -38
  6. lightrag/api/__init__.py +1 -1
  7. lightrag/api/config.py +3 -0
  8. lightrag/api/lightrag_server.py +3 -1
  9. lightrag/api/utils_api.py +18 -6
  10. lightrag/api/webui/assets/{_basePickBy-BSdLglB8.js → _basePickBy-BVZSZRdU.js} +0 -0
  11. lightrag/api/webui/assets/{_baseUniq-UvGlUd6J.js → _baseUniq-CoKY6BVy.js} +0 -0
  12. lightrag/api/webui/assets/{architectureDiagram-IEHRJDOE-BniHOq-e.js → architectureDiagram-IEHRJDOE-vef8RqWB.js} +0 -0
  13. lightrag/api/webui/assets/{blockDiagram-JOT3LUYC-DIN2mi-0.js → blockDiagram-JOT3LUYC-CbrB0eRz.js} +0 -0
  14. lightrag/api/webui/assets/{c4Diagram-VJAJSXHY-BJN20C_B.js → c4Diagram-VJAJSXHY-1eEG1RbS.js} +0 -0
  15. lightrag/api/webui/assets/{chunk-4BMEZGHF-B1TxGISA.js → chunk-4BMEZGHF-BqribV_z.js} +0 -0
  16. lightrag/api/webui/assets/{chunk-A2AXSNBT-9BBpDWtu.js → chunk-A2AXSNBT-79sAOFxS.js} +0 -0
  17. lightrag/api/webui/assets/{chunk-AEK57VVT-CXtM_4Od.js → chunk-AEK57VVT-C_8ebDHI.js} +0 -0
  18. lightrag/api/webui/assets/{chunk-D6G4REZN-CxUcE0YF.js → chunk-D6G4REZN-DYSFhgH1.js} +0 -0
  19. lightrag/api/webui/assets/{chunk-RZ5BOZE2-Du3GUvfy.js → chunk-RZ5BOZE2-PbmQbmec.js} +0 -0
  20. lightrag/api/webui/assets/{chunk-XZIHB7SX-HOIwmCiB.js → chunk-XZIHB7SX-UCc0agNy.js} +0 -0
  21. lightrag/api/webui/assets/{classDiagram-GIVACNV2-f9sRw-GR.js → classDiagram-GIVACNV2-CtQONuGk.js} +0 -0
  22. lightrag/api/webui/assets/{classDiagram-v2-COTLJTTW-f9sRw-GR.js → classDiagram-v2-COTLJTTW-CtQONuGk.js} +0 -0
  23. lightrag/api/webui/assets/{clone-JfI4KmSh.js → clone-UTZGcTvC.js} +0 -0
  24. lightrag/api/webui/assets/{dagre-OKDRZEBW-BfLyJCXh.js → dagre-OKDRZEBW-B2QKcgt1.js} +0 -0
  25. lightrag/api/webui/assets/{diagram-SSKATNLV-BPBm_HA_.js → diagram-SSKATNLV-C9gAoCDH.js} +0 -0
  26. lightrag/api/webui/assets/{diagram-VNBRO52H-B3H-hAHN.js → diagram-VNBRO52H-YHo3tP1S.js} +0 -0
  27. lightrag/api/webui/assets/{erDiagram-Q7BY3M3F-B0M4Dgpb.js → erDiagram-Q7BY3M3F-BZdHFlc9.js} +0 -0
  28. lightrag/api/webui/assets/{feature-documents-DYAipKCP.js → feature-documents-CSExwz2a.js} +0 -0
  29. lightrag/api/webui/assets/{feature-graph-yCDRht5b.js → feature-graph-D-mwOi0p.js} +0 -0
  30. lightrag/api/webui/assets/{feature-retrieval-DRE_iZah.js → feature-retrieval-BhEQ7fz5.js} +0 -0
  31. lightrag/api/webui/assets/{flowDiagram-4HSFHLVR-0O9i7rCc.js → flowDiagram-4HSFHLVR-Cyoqee_Z.js} +0 -0
  32. lightrag/api/webui/assets/{ganttDiagram-APWFNJXF-r6T2Qk9A.js → ganttDiagram-APWFNJXF-8xxuNmi-.js} +0 -0
  33. lightrag/api/webui/assets/{gitGraphDiagram-7IBYFJ6S-Bu88rIEh.js → gitGraphDiagram-7IBYFJ6S-C00chpNw.js} +0 -0
  34. lightrag/api/webui/assets/{graph-BA-Xpc80.js → graph-gg_UPtwE.js} +0 -0
  35. lightrag/api/webui/assets/{index-BlAjHenV.js → index-CZQXgxUO.js} +0 -0
  36. lightrag/api/webui/assets/{infoDiagram-PH2N3AL5-Ccvh5jh9.js → infoDiagram-PH2N3AL5-DKUJQA1J.js} +0 -0
  37. lightrag/api/webui/assets/{journeyDiagram-U35MCT3I-Bjko5wAq.js → journeyDiagram-U35MCT3I-C9ZzbUpH.js} +0 -0
  38. lightrag/api/webui/assets/{kanban-definition-NDS4AKOZ-CI4n-C9D.js → kanban-definition-NDS4AKOZ-BMGhZtt7.js} +0 -0
  39. lightrag/api/webui/assets/{layout-DVOtj2IM.js → layout-DgVd6nly.js} +0 -0
  40. lightrag/api/webui/assets/{mermaid-vendor-DnUYjsdS.js → mermaid-vendor-BVBgFwCv.js} +0 -0
  41. lightrag/api/webui/assets/{mindmap-definition-ALO5MXBD-C4YiM3o9.js → mindmap-definition-ALO5MXBD-Dy7fqjSb.js} +0 -0
  42. lightrag/api/webui/assets/{pieDiagram-IB7DONF6-Riizpkaf.js → pieDiagram-IB7DONF6-DDY8pHxZ.js} +0 -0
  43. lightrag/api/webui/assets/{quadrantDiagram-7GDLP6J5-CzGAtLV_.js → quadrantDiagram-7GDLP6J5-9aLJ3TJw.js} +0 -0
  44. lightrag/api/webui/assets/{radar-MK3ICKWK-CpuAiCbQ.js → radar-MK3ICKWK-B0N6XiM2.js} +0 -0
  45. lightrag/api/webui/assets/{requirementDiagram-KVF5MWMF-CgGQX3wU.js → requirementDiagram-KVF5MWMF-DqX-DNvM.js} +0 -0
  46. lightrag/api/webui/assets/{sankeyDiagram-QLVOVGJD-DqnzGw22.js → sankeyDiagram-QLVOVGJD-BrbjIPio.js} +0 -0
  47. lightrag/api/webui/assets/{sequenceDiagram-X6HHIX6F-YUSWxee1.js → sequenceDiagram-X6HHIX6F-wqcg8nnG.js} +0 -0
  48. lightrag/api/webui/assets/{stateDiagram-DGXRK772-DZnU_4RL.js → stateDiagram-DGXRK772-CGL2vL66.js} +0 -0
  49. lightrag/api/webui/assets/{stateDiagram-v2-YXO3MK2T-ZS0tnvcs.js → stateDiagram-v2-YXO3MK2T-DIpE_gWh.js} +0 -0
  50. lightrag/api/webui/assets/{timeline-definition-BDJGKUSR-Cl68_gMM.js → timeline-definition-BDJGKUSR-CwuNSBuu.js} +0 -0
README-zh.md CHANGED
@@ -90,6 +90,8 @@ LightRAG服务器旨在提供Web UI和API支持。Web UI便于文档索引、知
90
 
91
  ```bash
92
  pip install "lightrag-hku[api]"
 
 
93
  ```
94
 
95
  * 从源代码安装
@@ -100,6 +102,8 @@ cd LightRAG
100
  # 如有必要,创建Python虚拟环境
101
  # 以可编辑模式安装并支持API
102
  pip install -e ".[api]"
 
 
103
  ```
104
 
105
  * 使用 Docker Compose 启动 LightRAG 服务器
 
90
 
91
  ```bash
92
  pip install "lightrag-hku[api]"
93
+ cp env.example .env
94
+ lightrag-server
95
  ```
96
 
97
  * 从源代码安装
 
102
  # 如有必要,创建Python虚拟环境
103
  # 以可编辑模式安装并支持API
104
  pip install -e ".[api]"
105
+ cp env.example .env
106
+ lightrag-server
107
  ```
108
 
109
  * 使用 Docker Compose 启动 LightRAG 服务器
README.md CHANGED
@@ -89,6 +89,8 @@ The LightRAG Server is designed to provide Web UI and API support. The Web UI fa
89
 
90
  ```bash
91
  pip install "lightrag-hku[api]"
 
 
92
  ```
93
 
94
  * Installation from Source
@@ -99,6 +101,8 @@ cd LightRAG
99
  # create a Python virtual enviroment if neccesary
100
  # Install in editable mode with API support
101
  pip install -e ".[api]"
 
 
102
  ```
103
 
104
  * Launching the LightRAG Server with Docker Compose
 
89
 
90
  ```bash
91
  pip install "lightrag-hku[api]"
92
+ cp env.example .env
93
+ lightrag-server
94
  ```
95
 
96
  * Installation from Source
 
101
  # create a Python virtual enviroment if neccesary
102
  # Install in editable mode with API support
103
  pip install -e ".[api]"
104
+ cp env.example .env
105
+ lightrag-server
106
  ```
107
 
108
  * Launching the LightRAG Server with Docker Compose
env.example CHANGED
@@ -1,6 +1,5 @@
1
  ### This is sample file of .env
2
 
3
-
4
  ### Server Configuration
5
  HOST=0.0.0.0
6
  PORT=9621
@@ -51,7 +50,7 @@ OLLAMA_EMULATING_MODEL_TAG=latest
51
  # MAX_TOKEN_RELATION_DESC=4000
52
  # MAX_TOKEN_ENTITY_DESC=4000
53
 
54
- ### Entity and ralation summarization configuration
55
  ### Language: English, Chinese, French, German ...
56
  SUMMARY_LANGUAGE=English
57
  ### Number of duplicated entities/edges to trigger LLM re-summary on merge ( at least 3 is recommented)
@@ -111,7 +110,7 @@ EMBEDDING_BINDING_HOST=http://localhost:11434
111
  ###########################
112
  ### Data storage selection
113
  ###########################
114
- ### In-memory database with data persistence to local files
115
  # LIGHTRAG_KV_STORAGE=JsonKVStorage
116
  # LIGHTRAG_DOC_STATUS_STORAGE=JsonDocStatusStorage
117
  # LIGHTRAG_GRAPH_STORAGE=NetworkXStorage
@@ -122,18 +121,18 @@ EMBEDDING_BINDING_HOST=http://localhost:11434
122
  # LIGHTRAG_DOC_STATUS_STORAGE=PGDocStatusStorage
123
  # LIGHTRAG_GRAPH_STORAGE=PGGraphStorage
124
  # LIGHTRAG_VECTOR_STORAGE=PGVectorStorage
125
- ### MongoDB (recommended for production deploy)
126
  # LIGHTRAG_KV_STORAGE=MongoKVStorage
127
  # LIGHTRAG_DOC_STATUS_STORAGE=MongoDocStatusStorage
128
  # LIGHTRAG_GRAPH_STORAGE=MongoGraphStorage
129
  # LIGHTRAG_VECTOR_STORAGE=MongoVectorDBStorage
130
- ### Redis Storage (recommended for production deploy)
131
  # LIGHTRAG_KV_STORAGE=RedisKVStorage
132
  # LIGHTRAG_DOC_STATUS_STORAGE=RedisDocStatusStorage
133
- ### Vector Storage (recommended for production deploy)
134
  # LIGHTRAG_VECTOR_STORAGE=MilvusVectorDBStorage
135
  # LIGHTRAG_VECTOR_STORAGE=QdrantVectorDBStorage
136
- ### Graph Storage (recommended for production deploy)
137
  # LIGHTRAG_GRAPH_STORAGE=Neo4JStorage
138
 
139
  ####################################################################
 
1
  ### This is sample file of .env
2
 
 
3
  ### Server Configuration
4
  HOST=0.0.0.0
5
  PORT=9621
 
50
  # MAX_TOKEN_RELATION_DESC=4000
51
  # MAX_TOKEN_ENTITY_DESC=4000
52
 
53
+ ### Entity and relation summarization configuration
54
  ### Language: English, Chinese, French, German ...
55
  SUMMARY_LANGUAGE=English
56
  ### Number of duplicated entities/edges to trigger LLM re-summary on merge ( at least 3 is recommented)
 
110
  ###########################
111
  ### Data storage selection
112
  ###########################
113
+ ### In-memory database with local file persistence(Recommended for small scale deployment)
114
  # LIGHTRAG_KV_STORAGE=JsonKVStorage
115
  # LIGHTRAG_DOC_STATUS_STORAGE=JsonDocStatusStorage
116
  # LIGHTRAG_GRAPH_STORAGE=NetworkXStorage
 
121
  # LIGHTRAG_DOC_STATUS_STORAGE=PGDocStatusStorage
122
  # LIGHTRAG_GRAPH_STORAGE=PGGraphStorage
123
  # LIGHTRAG_VECTOR_STORAGE=PGVectorStorage
124
+ ### MongoDB (Vector storage only available on Atlas Cloud)
125
  # LIGHTRAG_KV_STORAGE=MongoKVStorage
126
  # LIGHTRAG_DOC_STATUS_STORAGE=MongoDocStatusStorage
127
  # LIGHTRAG_GRAPH_STORAGE=MongoGraphStorage
128
  # LIGHTRAG_VECTOR_STORAGE=MongoVectorDBStorage
129
+ ### Redis Storage (Recommended for production deployment)
130
  # LIGHTRAG_KV_STORAGE=RedisKVStorage
131
  # LIGHTRAG_DOC_STATUS_STORAGE=RedisDocStatusStorage
132
+ ### Vector Storage (Recommended for production deployment)
133
  # LIGHTRAG_VECTOR_STORAGE=MilvusVectorDBStorage
134
  # LIGHTRAG_VECTOR_STORAGE=QdrantVectorDBStorage
135
+ ### Graph Storage (Recommended for production deployment)
136
  # LIGHTRAG_GRAPH_STORAGE=Neo4JStorage
137
 
138
  ####################################################################
lightrag/api/README-zh.md CHANGED
@@ -43,7 +43,7 @@ LightRAG 需要同时集成 LLM(大型语言模型)和嵌入模型以有效
43
 
44
  建议使用环境变量来配置 LightRAG 服务器。项目根目录中有一个名为 `env.example` 的示例环境变量文件。请将此文件复制到启动目录并重命名为 `.env`。之后,您可以在 `.env` 文件中修改与 LLM 和嵌入模型相关的参数。需要注意的是,LightRAG 服务器每次启动时都会将 `.env` 中的环境变量加载到系统环境变量中。**LightRAG 服务器会优先使用系统环境变量中的设置**。
45
 
46
- > 由于安装了 Python 扩展的 VS Code 可能会在集成终端中自动加载 .env 文件,请在每次修改 .env 文件后打开新的终端会话。
47
 
48
  以下是 LLM 和嵌入模型的一些常见设置示例:
49
 
@@ -94,49 +94,23 @@ lightrag-server
94
  ```
95
  lightrag-gunicorn --workers 4
96
  ```
97
- `.env` 文件必须放在启动目录中。启动时,LightRAG 服务器将创建一个文档目录(默认为 `./inputs`)和一个数据目录(默认为 `./rag_storage`)。这允许您从不同目录启动多个 LightRAG 服务器实例,每个实例配置为监听不同的网络端口。
98
 
99
- 以下是一些常用的启动参数:
100
 
101
  - `--host`:服务器监听地址(默认:0.0.0.0)
102
  - `--port`:服务器监听端口(默认:9621)
103
  - `--timeout`:LLM 请求超时时间(默认:150 秒)
104
  - `--log-level`:日志级别(默认:INFO)
105
- - --input-dir:指定要扫描文档的目录(默认:./input
106
-
107
- > - **要求将.env文件置于启动目录中是经过特意设计的**。 这样做的目的是支持用户同时启动多个LightRAG实例,并为不同实例配置不同的.env文件。
108
- > - **修改.env文件后,您需要重新打开终端以使新设置生效**。 这是因为每次启动时,LightRAG Server会将.env文件中的环境变量加载至系统环境变量,且系统环境变量的设置具有更高优先级。
109
 
110
  ### 使用 Docker 启动 LightRAG 服务器
111
 
112
- * 克隆代码仓库:
113
- ```shell
114
- git clone https://github.com/HKUDS/LightRAG.git
115
- cd LightRAG
116
- ```
117
-
118
  * 配置 .env 文件:
119
  通过复制示例文件 [`env.example`](env.example) 创建个性化的 .env 文件,并根据实际需求设置 LLM 及 Embedding 参数。
120
-
121
- * 通过以下命令启动 LightRAG 服务器:
122
- ```shell
123
- docker compose up
124
- # 如拉取了新版本,请添加 --build 重新构建
125
- docker compose up --build
126
- ```
127
- ### 无需克隆代码而使用 Docker 部署 LightRAG 服务器
128
-
129
- * 为 LightRAG 服务器创建工作文件夹:
130
-
131
- ```shell
132
- mkdir lightrag
133
- cd lightrag
134
- ```
135
-
136
- * 准备 .env 文件:
137
- 通过复制 env.example 文件创建个性化的.env 文件。根据您的需求配置 LLM 和嵌入参数。
138
-
139
- * 创建一个名为 docker-compose.yml 的 docker compose 文件:
140
 
141
  ```yaml
142
  services:
@@ -157,26 +131,56 @@ services:
157
  - "host.docker.internal:host-gateway"
158
  ```
159
 
160
- * 准备 .env 文件:
161
- 通过复制示例文件 [`env.example`](env.example) 创建个性化的 .env 文件。根据您的需求配置 LLM 和嵌入参数。
162
 
163
- * 使用以下命令启动 LightRAG 服务器:
164
  ```shell
165
  docker compose up
 
166
  ```
167
-
168
- > 在此获取LightRAG docker镜像历史版本: [LightRAG Docker Images]( https://github.com/HKUDS/LightRAG/pkgs/container/lightrag)
169
 
170
  ### 启动时自动扫描
171
 
172
- 当使用 `--auto-scan-at-startup` 参数启动任何服务器时,系统将自动:
173
 
174
  1. 扫描输入目录中的新文件
175
  2. 为尚未在数据库中的新文档建立索引
176
  3. 使所有内容立即可用于 RAG 查询
177
 
 
 
178
  > `--input-dir` 参数指定要扫描的输入目录。您可以从 webui 触发输入目录扫描。
179
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
  ### Gunicorn + Uvicorn 的多工作进程
181
 
182
  LightRAG 服务器可以在 `Gunicorn + Uvicorn` 预加载模式下运行。Gunicorn 的多工作进程(多进程)功能可以防止文档索引任务阻塞 RAG 查询。使用 CPU 密集型文档提取工具(如 docling)在纯 Uvicorn 模式下可能会导致整个系统被阻塞。
 
43
 
44
  建议使用环境变量来配置 LightRAG 服务器。项目根目录中有一个名为 `env.example` 的示例环境变量文件。请将此文件复制到启动目录并重命名为 `.env`。之后,您可以在 `.env` 文件中修改与 LLM 和嵌入模型相关的参数。需要注意的是,LightRAG 服务器每次启动时都会将 `.env` 中的环境变量加载到系统环境变量中。**LightRAG 服务器会优先使用系统环境变量中的设置**。
45
 
46
+ > 由于安装了 Python 扩展的 VS Code 可能会在集成终端中自动加载 .env 文件,请在每次修改 .env 文件后打开新的终端会话。
47
 
48
  以下是 LLM 和嵌入模型的一些常见设置示例:
49
 
 
94
  ```
95
  lightrag-gunicorn --workers 4
96
  ```
97
+ 启动LightRAG的时候,当前工作目录必须含有`.env`配置文件。**要求将.env文件置于启动目录中是经过特意设计的**。 这样做的目的是支持用户同时启动多个LightRAG实例,并为不同实例配置不同的.env文件。**修改.env文件后,您需要重新打开终端以使新设置生效**。 这是因为每次启动时,LightRAG Server会将.env文件中的环境变量加载至系统环境变量,且系统环境变量的设置具有更高优先级。
98
 
99
+ 启动时可以通过命令行参数覆盖`.env`文件中的配置。常用的命令行参数包括:
100
 
101
  - `--host`:服务器监听地址(默认:0.0.0.0)
102
  - `--port`:服务器监听端口(默认:9621)
103
  - `--timeout`:LLM 请求超时时间(默认:150 秒)
104
  - `--log-level`:日志级别(默认:INFO)
105
+ - `--working-dir`:数据库持久化目录(默认:./rag_storage
106
+ - `--input-dir`:上传文件存放目录(默认:./inputs)
107
+ - `--workspace`: 工作空间名称,用于逻辑上隔离多个LightRAG实例之间的数据(默认:空)
 
108
 
109
  ### 使用 Docker 启动 LightRAG 服务器
110
 
 
 
 
 
 
 
111
  * 配置 .env 文件:
112
  通过复制示例文件 [`env.example`](env.example) 创建个性化的 .env 文件,并根据实际需求设置 LLM 及 Embedding 参数。
113
+ * 创建一个名为 docker-compose.yml 的文件:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
 
115
  ```yaml
116
  services:
 
131
  - "host.docker.internal:host-gateway"
132
  ```
133
 
134
+ * 通过以下命令启动 LightRAG 服务器:
 
135
 
 
136
  ```shell
137
  docker compose up
138
+ # 如果希望启动后让程序退到后台运行,需要在命令的最后添加 -d 参数
139
  ```
140
+ > 可以通过以下链接获取官方的docker compose文件:[docker-compose.yml]( https://raw.githubusercontent.com/HKUDS/LightRAG/refs/heads/main/docker-compose.yml) 。如需获取LightRAG的历史版本镜像,可以访问以下链接: [LightRAG Docker Images]( https://github.com/HKUDS/LightRAG/pkgs/container/lightrag)
 
141
 
142
  ### 启动时自动扫描
143
 
144
+ 当使用 `--auto-scan-at-startup` 参数启动LightRAG Server时,系统将自动:
145
 
146
  1. 扫描输入目录中的新文件
147
  2. 为尚未在数据库中的新文档建立索引
148
  3. 使所有内容立即可用于 RAG 查询
149
 
150
+ 这种工作模式给启动一个临时的RAG任务提供给了方便。
151
+
152
  > `--input-dir` 参数指定要扫描的输入目录。您可以从 webui 触发输入目录扫描。
153
 
154
+ ### 启动多个LightRAG实例
155
+
156
+ 有两种方式可以启动多个LightRAG实例。第一种方式是为每个实例配置一个完全独立的工作环境。此时需要为每个实例创建一个独立的工作目录,然后在这个工作目录上放置一个当前实例专用的`.env`配置文件。不同实例的配置文件中的服务器监听端口不能重复,然后在工作目录上执行 lightrag-server 启动服务即可。
157
+
158
+ 第二种方式是所有实例共享一套相同的`.env`配置文件,然后通过命令行参数来为每个实例指定不同的服务器监听端口和工作空间。你可以在同一个工作目录中通过不同的命令行参数启动多个LightRAG实例。例如:
159
+
160
+ ```
161
+ # 启动实例1
162
+ lightrag-server --port 9621 --workspace space1
163
+
164
+ # 启动实例2
165
+ lightrag-server --port 9622 --workspace space2
166
+ ```
167
+
168
+ 工作空间的作用是实现不同实例之间的数据隔离。因此不同实例之间的`workspace`参数必须不同,否则会导致数据混乱,数据将会被破坏。
169
+
170
+ ### LightRAG实例间的数据隔离
171
+
172
+ 每个实例配置一个独立的工作目录和专用`.env`配置文件通常能够保证内存数据库中的本地持久化文件保存在各自的工作目录,实现数据的相互隔离。LightRAG默认存储全部都是内存数据库,通过这种方式进行数据隔离是没有问题的。但是如果使用的是外部数据库,如果不同实例访问的是同一个数据库实例,就需要通过配置工作空间来实现数据隔离,否则不同实例的数据将会出现冲突并被破坏。
173
+
174
+ 命令行的 workspace 参数和`.env`文件中的环境变量`WORKSPACE` 都可以用于指定当前实例的工作空间名字,命令行参数的优先级别更高。下面是不同类型的存储实现工作空间的方式:
175
+
176
+ - **对于本地基于文件的数据库,数据隔离通过工作空间子目录实现:** JsonKVStorage, JsonDocStatusStorage, NetworkXStorage, NanoVectorDBStorage, FaissVectorDBStorage。
177
+ - **对于将数据存储在集合(collection)中的数据库,通过在集合名称前添加工作空间前缀来实现:** RedisKVStorage, RedisDocStatusStorage, MilvusVectorDBStorage, QdrantVectorDBStorage, MongoKVStorage, MongoDocStatusStorage, MongoVectorDBStorage, MongoGraphStorage, PGGraphStorage。
178
+ - **对于关系型数据库,数据隔离通过向表中添加 `workspace` 字段进行数据的逻辑隔离:** PGKVStorage, PGVectorStorage, PGDocStatusStorage。
179
+
180
+ * **对于Neo4j图数据库,通过label来实现数据的逻辑隔离**:Neo4JStorage
181
+
182
+ 为了保持对遗留数据的兼容,在未配置工作空间时PostgreSQL的默认工作空间为`default`,Neo4j的默认工作空间为`base`。对于所有的外部存储,系统都提供了专用的工作空间环境变量,用于覆盖公共的 `WORKSPACE`环境变量配置。这些适用于指定存储类型的工作空间环境变量为:`REDIS_WORKSPACE`, `MILVUS_WORKSPACE`, `QDRANT_WORKSPACE`, `MONGODB_WORKSPACE`, `POSTGRES_WORKSPACE`, `NEO4J_WORKSPACE`。
183
+
184
  ### Gunicorn + Uvicorn 的多工作进程
185
 
186
  LightRAG 服务器可以在 `Gunicorn + Uvicorn` 预加载模式下运行。Gunicorn 的多工作进程(多进程)功能可以防止文档索引任务阻塞 RAG 查询。使用 CPU 密集型文档提取工具(如 docling)在纯 Uvicorn 模式下可能会导致整个系统被阻塞。
lightrag/api/README.md CHANGED
@@ -94,50 +94,25 @@ lightrag-server
94
  ```
95
  lightrag-gunicorn --workers 4
96
  ```
97
- The `.env` file **must be placed in the startup directory**.
98
 
99
- Upon launching, the LightRAG Server will create a documents directory (default is `./inputs`) and a data directory (default is `./rag_storage`). This allows you to initiate multiple instances of LightRAG Server from different directories, with each instance configured to listen on a distinct network port.
100
 
101
- Here are some commonly used startup parameters:
102
 
103
  - `--host`: Server listening address (default: 0.0.0.0)
104
  - `--port`: Server listening port (default: 9621)
105
  - `--timeout`: LLM request timeout (default: 150 seconds)
106
- - `--log-level`: Logging level (default: INFO)
107
- - `--input-dir`: Specifying the directory to scan for documents (default: ./inputs)
108
-
109
- > - The requirement for the .env file to be in the startup directory is intentionally designed this way. The purpose is to support users in launching multiple LightRAG instances simultaneously, allowing different .env files for different instances.
110
- > - **After changing the .env file, you need to open a new terminal to make the new settings take effect.** This because the LightRAG Server will load the environment variables from .env into the system environment variables each time it starts, and LightRAG Server will prioritize the settings in the system environment variables.
111
 
112
  ### Launching LightRAG Server with Docker
113
 
114
- * Clone the repository:
115
- ```shell
116
- git clone https://github.com/HKUDS/LightRAG.git
117
- cd LightRAG
118
- ```
119
-
120
  * Prepare the .env file:
121
- Create a personalized .env file from sample file `env.example`. Configure the LLM and embedding parameters according to your requirements.
122
-
123
- * Start the LightRAG Server using the following commands:
124
- ```shell
125
- docker compose up
126
- # Use --build if you have pulled a new version
127
- docker compose up --build
128
- ```
129
-
130
- ### Deploying LightRAG Server with docker without cloneing the repository
131
-
132
- * Create a working folder for LightRAG Server:
133
-
134
- ```shell
135
- mkdir lightrag
136
- cd lightrag
137
- ```
138
-
139
- * Create a docker compose file named docker-compose.yml:
140
 
 
141
 
142
  ```yaml
143
  services:
@@ -157,26 +132,57 @@ services:
157
  extra_hosts:
158
  - "host.docker.internal:host-gateway"
159
  ```
160
- * Prepare the .env file:
161
- Create a personalized .env file from sample file `env.example`. Configure the LLM and embedding parameters according to your requirements.
162
 
163
- * Start the LightRAG Server using the following commands:
 
164
  ```shell
165
  docker compose up
 
166
  ```
167
 
168
- > Historical versions of LightRAG docker images can be found here: [LightRAG Docker Images]( https://github.com/HKUDS/LightRAG/pkgs/container/lightrag)
169
 
170
  ### Auto scan on startup
171
 
172
- When starting any of the servers with the `--auto-scan-at-startup` parameter, the system will automatically:
173
 
174
  1. Scan for new files in the input directory
175
  2. Index new documents that aren't already in the database
176
  3. Make all content immediately available for RAG queries
177
 
 
 
178
  > The `--input-dir` parameter specifies the input directory to scan. You can trigger the input directory scan from the Web UI.
179
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
  ### Multiple workers for Gunicorn + Uvicorn
181
 
182
  The LightRAG Server can operate in the `Gunicorn + Uvicorn` preload mode. Gunicorn's multiple worker (multiprocess) capability prevents document indexing tasks from blocking RAG queries. Using CPU-exhaustive document extraction tools, such as docling, can lead to the entire system being blocked in pure Uvicorn mode.
 
94
  ```
95
  lightrag-gunicorn --workers 4
96
  ```
 
97
 
98
+ When starting LightRAG, the current working directory must contain the `.env` configuration file. **It is intentionally designed that the `.env` file must be placed in the startup directory**. The purpose of this is to allow users to launch multiple LightRAG instances simultaneously and configure different `.env` files for different instances. **After modifying the `.env` file, you need to reopen the terminal for the new settings to take effect.** This is because each time LightRAG Server starts, it loads the environment variables from the `.env` file into the system environment variables, and system environment variables have higher precedence.
99
 
100
+ During startup, configurations in the `.env` file can be overridden by command-line parameters. Common command-line parameters include:
101
 
102
  - `--host`: Server listening address (default: 0.0.0.0)
103
  - `--port`: Server listening port (default: 9621)
104
  - `--timeout`: LLM request timeout (default: 150 seconds)
105
+ - `--log-level`: Log level (default: INFO)
106
+ - `--working-dir`: Database persistence directory (default: ./rag_storage)
107
+ - `--input-dir`: Directory for uploaded files (default: ./inputs)
108
+ - `--workspace`: Workspace name, used to logically isolate data between multiple LightRAG instances (default: empty)
 
109
 
110
  ### Launching LightRAG Server with Docker
111
 
 
 
 
 
 
 
112
  * Prepare the .env file:
113
+ Create a personalized .env file by copying the sample file [`env.example`](env.example). Configure the LLM and embedding parameters according to your requirements.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
 
115
+ * Create a file named `docker-compose.yml`:
116
 
117
  ```yaml
118
  services:
 
132
  extra_hosts:
133
  - "host.docker.internal:host-gateway"
134
  ```
 
 
135
 
136
+ * Start the LightRAG Server with the following command:
137
+
138
  ```shell
139
  docker compose up
140
+ # If you want the program to run in the background after startup, add the -d parameter at the end of the command.
141
  ```
142
 
143
+ > You can get the official docker compose file from here: [docker-compose.yml](https://raw.githubusercontent.com/HKUDS/LightRAG/refs/heads/main/docker-compose.yml). For historical versions of LightRAG docker images, visit this link: [LightRAG Docker Images](https://github.com/HKUDS/LightRAG/pkgs/container/lightrag)
144
 
145
  ### Auto scan on startup
146
 
147
+ When starting the LightRAG Server with the `--auto-scan-at-startup` parameter, the system will automatically:
148
 
149
  1. Scan for new files in the input directory
150
  2. Index new documents that aren't already in the database
151
  3. Make all content immediately available for RAG queries
152
 
153
+ This offers an efficient method for deploying ad-hoc RAG processes.
154
+
155
  > The `--input-dir` parameter specifies the input directory to scan. You can trigger the input directory scan from the Web UI.
156
 
157
+ ### Starting Multiple LightRAG Instances
158
+
159
+ There are two ways to start multiple LightRAG instances. The first way is to configure a completely independent working environment for each instance. This requires creating a separate working directory for each instance and placing a dedicated `.env` configuration file in that directory. The server listening ports in the configuration files of different instances cannot be the same. Then, you can start the service by running `lightrag-server` in the working directory.
160
+
161
+ The second way is for all instances to share the same set of `.env` configuration files, and then use command-line arguments to specify different server listening ports and workspaces for each instance. You can start multiple LightRAG instances in the same working directory with different command-line arguments. For example:
162
+
163
+ ```
164
+ # Start instance 1
165
+ lightrag-server --port 9621 --workspace space1
166
+
167
+ # Start instance 2
168
+ lightrag-server --port 9622 --workspace space2
169
+ ```
170
+
171
+ The purpose of a workspace is to achieve data isolation between different instances. Therefore, the `workspace` parameter must be different for different instances; otherwise, it will lead to data confusion and corruption.
172
+
173
+ ### Data Isolation Between LightRAG Instances
174
+
175
+ Configuring an independent working directory and a dedicated `.env` configuration file for each instance can generally ensure that locally persisted files in the in-memory database are saved in their respective working directories, achieving data isolation. By default, LightRAG uses all in-memory databases, and this method of data isolation is sufficient. However, if you are using an external database, and different instances access the same database instance, you need to use workspaces to achieve data isolation; otherwise, the data of different instances will conflict and be destroyed.
176
+
177
+ The command-line `workspace` argument and the `WORKSPACE` environment variable in the `.env` file can both be used to specify the workspace name for the current instance, with the command-line argument having higher priority. Here is how workspaces are implemented for different types of storage:
178
+
179
+ - **For local file-based databases, data isolation is achieved through workspace subdirectories:** `JsonKVStorage`, `JsonDocStatusStorage`, `NetworkXStorage`, `NanoVectorDBStorage`, `FaissVectorDBStorage`.
180
+ - **For databases that store data in collections, it's done by adding a workspace prefix to the collection name:** `RedisKVStorage`, `RedisDocStatusStorage`, `MilvusVectorDBStorage`, `QdrantVectorDBStorage`, `MongoKVStorage`, `MongoDocStatusStorage`, `MongoVectorDBStorage`, `MongoGraphStorage`, `PGGraphStorage`.
181
+ - **For relational databases, data isolation is achieved by adding a `workspace` field to the tables for logical data separation:** `PGKVStorage`, `PGVectorStorage`, `PGDocStatusStorage`.
182
+ - **For the Neo4j graph database, logical data isolation is achieved through labels:** `Neo4JStorage`
183
+
184
+ To maintain compatibility with legacy data, the default workspace for PostgreSQL is `default` and for Neo4j is `base` when no workspace is configured. For all external storages, the system provides dedicated workspace environment variables to override the common `WORKSPACE` environment variable configuration. These storage-specific workspace environment variables are: `REDIS_WORKSPACE`, `MILVUS_WORKSPACE`, `QDRANT_WORKSPACE`, `MONGODB_WORKSPACE`, `POSTGRES_WORKSPACE`, `NEO4J_WORKSPACE`.
185
+
186
  ### Multiple workers for Gunicorn + Uvicorn
187
 
188
  The LightRAG Server can operate in the `Gunicorn + Uvicorn` preload mode. Gunicorn's multiple worker (multiprocess) capability prevents document indexing tasks from blocking RAG queries. Using CPU-exhaustive document extraction tools, such as docling, can lead to the entire system being blocked in pure Uvicorn mode.
lightrag/api/__init__.py CHANGED
@@ -1 +1 @@
1
- __api_version__ = "0179"
 
1
+ __api_version__ = "0180"
lightrag/api/config.py CHANGED
@@ -244,6 +244,9 @@ def parse_args() -> argparse.Namespace:
244
  # Get MAX_PARALLEL_INSERT from environment
245
  args.max_parallel_insert = get_env_value("MAX_PARALLEL_INSERT", 2, int)
246
 
 
 
 
247
  # Handle openai-ollama special case
248
  if args.llm_binding == "openai-ollama":
249
  args.llm_binding = "openai"
 
244
  # Get MAX_PARALLEL_INSERT from environment
245
  args.max_parallel_insert = get_env_value("MAX_PARALLEL_INSERT", 2, int)
246
 
247
+ # Get MAX_GRAPH_NODES from environment
248
+ args.max_graph_nodes = get_env_value("MAX_GRAPH_NODES", 1000, int)
249
+
250
  # Handle openai-ollama special case
251
  if args.llm_binding == "openai-ollama":
252
  args.llm_binding = "openai"
lightrag/api/lightrag_server.py CHANGED
@@ -326,6 +326,7 @@ def create_app(args):
326
  enable_llm_cache=args.enable_llm_cache,
327
  auto_manage_storages_states=False,
328
  max_parallel_insert=args.max_parallel_insert,
 
329
  addon_params={"language": args.summary_language},
330
  )
331
  else: # azure_openai
@@ -353,6 +354,7 @@ def create_app(args):
353
  enable_llm_cache=args.enable_llm_cache,
354
  auto_manage_storages_states=False,
355
  max_parallel_insert=args.max_parallel_insert,
 
356
  addon_params={"language": args.summary_language},
357
  )
358
 
@@ -475,7 +477,7 @@ def create_app(args):
475
  "enable_llm_cache_for_extract": args.enable_llm_cache_for_extract,
476
  "enable_llm_cache": args.enable_llm_cache,
477
  "workspace": args.workspace,
478
- "max_graph_nodes": os.getenv("MAX_GRAPH_NODES"),
479
  },
480
  "auth_mode": auth_mode,
481
  "pipeline_busy": pipeline_status.get("busy", False),
 
326
  enable_llm_cache=args.enable_llm_cache,
327
  auto_manage_storages_states=False,
328
  max_parallel_insert=args.max_parallel_insert,
329
+ max_graph_nodes=args.max_graph_nodes,
330
  addon_params={"language": args.summary_language},
331
  )
332
  else: # azure_openai
 
354
  enable_llm_cache=args.enable_llm_cache,
355
  auto_manage_storages_states=False,
356
  max_parallel_insert=args.max_parallel_insert,
357
+ max_graph_nodes=args.max_graph_nodes,
358
  addon_params={"language": args.summary_language},
359
  )
360
 
 
477
  "enable_llm_cache_for_extract": args.enable_llm_cache_for_extract,
478
  "enable_llm_cache": args.enable_llm_cache,
479
  "workspace": args.workspace,
480
+ "max_graph_nodes": args.max_graph_nodes,
481
  },
482
  "auth_mode": auth_mode,
483
  "pipeline_busy": pipeline_status.get("busy", False),
lightrag/api/utils_api.py CHANGED
@@ -175,12 +175,24 @@ def display_splash_screen(args: argparse.Namespace) -> None:
175
  args: Parsed command line arguments
176
  """
177
  # Banner
178
- ASCIIColors.cyan(f"""
179
- ╔══════════════════════════════════════════════════════════════╗
180
- ║ 🚀 LightRAG Server v{core_version}/{api_version} ║
181
- ║ Fast, Lightweight RAG Server Implementation ║
182
- ╚══════════════════════════════════════════════════════════════╝
183
- """)
 
 
 
 
 
 
 
 
 
 
 
 
184
 
185
  # Server Configuration
186
  ASCIIColors.magenta("\n📡 Server Configuration:")
 
175
  args: Parsed command line arguments
176
  """
177
  # Banner
178
+ # Banner
179
+ top_border = "╔══════════════════════════════════════════════════════════════╗"
180
+ bottom_border = "╚══════════════════════════════════════════════════════════════╝"
181
+ width = len(top_border) - 4 # width inside the borders
182
+
183
+ line1_text = f"LightRAG Server v{core_version}/{api_version}"
184
+ line2_text = "Fast, Lightweight RAG Server Implementation"
185
+
186
+ line1 = f"║ {line1_text.center(width)} ║"
187
+ line2 = f"║ {line2_text.center(width)} ║"
188
+
189
+ banner = f"""
190
+ {top_border}
191
+ {line1}
192
+ {line2}
193
+ {bottom_border}
194
+ """
195
+ ASCIIColors.cyan(banner)
196
 
197
  # Server Configuration
198
  ASCIIColors.magenta("\n📡 Server Configuration:")
lightrag/api/webui/assets/{_basePickBy-BSdLglB8.js → _basePickBy-BVZSZRdU.js} RENAMED
Binary files a/lightrag/api/webui/assets/_basePickBy-BSdLglB8.js and b/lightrag/api/webui/assets/_basePickBy-BVZSZRdU.js differ
 
lightrag/api/webui/assets/{_baseUniq-UvGlUd6J.js → _baseUniq-CoKY6BVy.js} RENAMED
Binary files a/lightrag/api/webui/assets/_baseUniq-UvGlUd6J.js and b/lightrag/api/webui/assets/_baseUniq-CoKY6BVy.js differ
 
lightrag/api/webui/assets/{architectureDiagram-IEHRJDOE-BniHOq-e.js → architectureDiagram-IEHRJDOE-vef8RqWB.js} RENAMED
Binary files a/lightrag/api/webui/assets/architectureDiagram-IEHRJDOE-BniHOq-e.js and b/lightrag/api/webui/assets/architectureDiagram-IEHRJDOE-vef8RqWB.js differ
 
lightrag/api/webui/assets/{blockDiagram-JOT3LUYC-DIN2mi-0.js → blockDiagram-JOT3LUYC-CbrB0eRz.js} RENAMED
Binary files a/lightrag/api/webui/assets/blockDiagram-JOT3LUYC-DIN2mi-0.js and b/lightrag/api/webui/assets/blockDiagram-JOT3LUYC-CbrB0eRz.js differ
 
lightrag/api/webui/assets/{c4Diagram-VJAJSXHY-BJN20C_B.js → c4Diagram-VJAJSXHY-1eEG1RbS.js} RENAMED
Binary files a/lightrag/api/webui/assets/c4Diagram-VJAJSXHY-BJN20C_B.js and b/lightrag/api/webui/assets/c4Diagram-VJAJSXHY-1eEG1RbS.js differ
 
lightrag/api/webui/assets/{chunk-4BMEZGHF-B1TxGISA.js → chunk-4BMEZGHF-BqribV_z.js} RENAMED
Binary files a/lightrag/api/webui/assets/chunk-4BMEZGHF-B1TxGISA.js and b/lightrag/api/webui/assets/chunk-4BMEZGHF-BqribV_z.js differ
 
lightrag/api/webui/assets/{chunk-A2AXSNBT-9BBpDWtu.js → chunk-A2AXSNBT-79sAOFxS.js} RENAMED
Binary files a/lightrag/api/webui/assets/chunk-A2AXSNBT-9BBpDWtu.js and b/lightrag/api/webui/assets/chunk-A2AXSNBT-79sAOFxS.js differ
 
lightrag/api/webui/assets/{chunk-AEK57VVT-CXtM_4Od.js → chunk-AEK57VVT-C_8ebDHI.js} RENAMED
Binary files a/lightrag/api/webui/assets/chunk-AEK57VVT-CXtM_4Od.js and b/lightrag/api/webui/assets/chunk-AEK57VVT-C_8ebDHI.js differ
 
lightrag/api/webui/assets/{chunk-D6G4REZN-CxUcE0YF.js → chunk-D6G4REZN-DYSFhgH1.js} RENAMED
Binary files a/lightrag/api/webui/assets/chunk-D6G4REZN-CxUcE0YF.js and b/lightrag/api/webui/assets/chunk-D6G4REZN-DYSFhgH1.js differ
 
lightrag/api/webui/assets/{chunk-RZ5BOZE2-Du3GUvfy.js → chunk-RZ5BOZE2-PbmQbmec.js} RENAMED
Binary files a/lightrag/api/webui/assets/chunk-RZ5BOZE2-Du3GUvfy.js and b/lightrag/api/webui/assets/chunk-RZ5BOZE2-PbmQbmec.js differ
 
lightrag/api/webui/assets/{chunk-XZIHB7SX-HOIwmCiB.js → chunk-XZIHB7SX-UCc0agNy.js} RENAMED
Binary files a/lightrag/api/webui/assets/chunk-XZIHB7SX-HOIwmCiB.js and b/lightrag/api/webui/assets/chunk-XZIHB7SX-UCc0agNy.js differ
 
lightrag/api/webui/assets/{classDiagram-GIVACNV2-f9sRw-GR.js → classDiagram-GIVACNV2-CtQONuGk.js} RENAMED
Binary files a/lightrag/api/webui/assets/classDiagram-GIVACNV2-f9sRw-GR.js and b/lightrag/api/webui/assets/classDiagram-GIVACNV2-CtQONuGk.js differ
 
lightrag/api/webui/assets/{classDiagram-v2-COTLJTTW-f9sRw-GR.js → classDiagram-v2-COTLJTTW-CtQONuGk.js} RENAMED
Binary files a/lightrag/api/webui/assets/classDiagram-v2-COTLJTTW-f9sRw-GR.js and b/lightrag/api/webui/assets/classDiagram-v2-COTLJTTW-CtQONuGk.js differ
 
lightrag/api/webui/assets/{clone-JfI4KmSh.js → clone-UTZGcTvC.js} RENAMED
Binary files a/lightrag/api/webui/assets/clone-JfI4KmSh.js and b/lightrag/api/webui/assets/clone-UTZGcTvC.js differ
 
lightrag/api/webui/assets/{dagre-OKDRZEBW-BfLyJCXh.js → dagre-OKDRZEBW-B2QKcgt1.js} RENAMED
Binary files a/lightrag/api/webui/assets/dagre-OKDRZEBW-BfLyJCXh.js and b/lightrag/api/webui/assets/dagre-OKDRZEBW-B2QKcgt1.js differ
 
lightrag/api/webui/assets/{diagram-SSKATNLV-BPBm_HA_.js → diagram-SSKATNLV-C9gAoCDH.js} RENAMED
Binary files a/lightrag/api/webui/assets/diagram-SSKATNLV-BPBm_HA_.js and b/lightrag/api/webui/assets/diagram-SSKATNLV-C9gAoCDH.js differ
 
lightrag/api/webui/assets/{diagram-VNBRO52H-B3H-hAHN.js → diagram-VNBRO52H-YHo3tP1S.js} RENAMED
Binary files a/lightrag/api/webui/assets/diagram-VNBRO52H-B3H-hAHN.js and b/lightrag/api/webui/assets/diagram-VNBRO52H-YHo3tP1S.js differ
 
lightrag/api/webui/assets/{erDiagram-Q7BY3M3F-B0M4Dgpb.js → erDiagram-Q7BY3M3F-BZdHFlc9.js} RENAMED
Binary files a/lightrag/api/webui/assets/erDiagram-Q7BY3M3F-B0M4Dgpb.js and b/lightrag/api/webui/assets/erDiagram-Q7BY3M3F-BZdHFlc9.js differ
 
lightrag/api/webui/assets/{feature-documents-DYAipKCP.js → feature-documents-CSExwz2a.js} RENAMED
Binary files a/lightrag/api/webui/assets/feature-documents-DYAipKCP.js and b/lightrag/api/webui/assets/feature-documents-CSExwz2a.js differ
 
lightrag/api/webui/assets/{feature-graph-yCDRht5b.js → feature-graph-D-mwOi0p.js} RENAMED
Binary files a/lightrag/api/webui/assets/feature-graph-yCDRht5b.js and b/lightrag/api/webui/assets/feature-graph-D-mwOi0p.js differ
 
lightrag/api/webui/assets/{feature-retrieval-DRE_iZah.js → feature-retrieval-BhEQ7fz5.js} RENAMED
Binary files a/lightrag/api/webui/assets/feature-retrieval-DRE_iZah.js and b/lightrag/api/webui/assets/feature-retrieval-BhEQ7fz5.js differ
 
lightrag/api/webui/assets/{flowDiagram-4HSFHLVR-0O9i7rCc.js → flowDiagram-4HSFHLVR-Cyoqee_Z.js} RENAMED
Binary files a/lightrag/api/webui/assets/flowDiagram-4HSFHLVR-0O9i7rCc.js and b/lightrag/api/webui/assets/flowDiagram-4HSFHLVR-Cyoqee_Z.js differ
 
lightrag/api/webui/assets/{ganttDiagram-APWFNJXF-r6T2Qk9A.js → ganttDiagram-APWFNJXF-8xxuNmi-.js} RENAMED
Binary files a/lightrag/api/webui/assets/ganttDiagram-APWFNJXF-r6T2Qk9A.js and b/lightrag/api/webui/assets/ganttDiagram-APWFNJXF-8xxuNmi-.js differ
 
lightrag/api/webui/assets/{gitGraphDiagram-7IBYFJ6S-Bu88rIEh.js → gitGraphDiagram-7IBYFJ6S-C00chpNw.js} RENAMED
Binary files a/lightrag/api/webui/assets/gitGraphDiagram-7IBYFJ6S-Bu88rIEh.js and b/lightrag/api/webui/assets/gitGraphDiagram-7IBYFJ6S-C00chpNw.js differ
 
lightrag/api/webui/assets/{graph-BA-Xpc80.js → graph-gg_UPtwE.js} RENAMED
Binary files a/lightrag/api/webui/assets/graph-BA-Xpc80.js and b/lightrag/api/webui/assets/graph-gg_UPtwE.js differ
 
lightrag/api/webui/assets/{index-BlAjHenV.js → index-CZQXgxUO.js} RENAMED
Binary files a/lightrag/api/webui/assets/index-BlAjHenV.js and b/lightrag/api/webui/assets/index-CZQXgxUO.js differ
 
lightrag/api/webui/assets/{infoDiagram-PH2N3AL5-Ccvh5jh9.js → infoDiagram-PH2N3AL5-DKUJQA1J.js} RENAMED
Binary files a/lightrag/api/webui/assets/infoDiagram-PH2N3AL5-Ccvh5jh9.js and b/lightrag/api/webui/assets/infoDiagram-PH2N3AL5-DKUJQA1J.js differ
 
lightrag/api/webui/assets/{journeyDiagram-U35MCT3I-Bjko5wAq.js → journeyDiagram-U35MCT3I-C9ZzbUpH.js} RENAMED
Binary files a/lightrag/api/webui/assets/journeyDiagram-U35MCT3I-Bjko5wAq.js and b/lightrag/api/webui/assets/journeyDiagram-U35MCT3I-C9ZzbUpH.js differ
 
lightrag/api/webui/assets/{kanban-definition-NDS4AKOZ-CI4n-C9D.js → kanban-definition-NDS4AKOZ-BMGhZtt7.js} RENAMED
Binary files a/lightrag/api/webui/assets/kanban-definition-NDS4AKOZ-CI4n-C9D.js and b/lightrag/api/webui/assets/kanban-definition-NDS4AKOZ-BMGhZtt7.js differ
 
lightrag/api/webui/assets/{layout-DVOtj2IM.js → layout-DgVd6nly.js} RENAMED
Binary files a/lightrag/api/webui/assets/layout-DVOtj2IM.js and b/lightrag/api/webui/assets/layout-DgVd6nly.js differ
 
lightrag/api/webui/assets/{mermaid-vendor-DnUYjsdS.js → mermaid-vendor-BVBgFwCv.js} RENAMED
Binary files a/lightrag/api/webui/assets/mermaid-vendor-DnUYjsdS.js and b/lightrag/api/webui/assets/mermaid-vendor-BVBgFwCv.js differ
 
lightrag/api/webui/assets/{mindmap-definition-ALO5MXBD-C4YiM3o9.js → mindmap-definition-ALO5MXBD-Dy7fqjSb.js} RENAMED
Binary files a/lightrag/api/webui/assets/mindmap-definition-ALO5MXBD-C4YiM3o9.js and b/lightrag/api/webui/assets/mindmap-definition-ALO5MXBD-Dy7fqjSb.js differ
 
lightrag/api/webui/assets/{pieDiagram-IB7DONF6-Riizpkaf.js → pieDiagram-IB7DONF6-DDY8pHxZ.js} RENAMED
Binary files a/lightrag/api/webui/assets/pieDiagram-IB7DONF6-Riizpkaf.js and b/lightrag/api/webui/assets/pieDiagram-IB7DONF6-DDY8pHxZ.js differ
 
lightrag/api/webui/assets/{quadrantDiagram-7GDLP6J5-CzGAtLV_.js → quadrantDiagram-7GDLP6J5-9aLJ3TJw.js} RENAMED
Binary files a/lightrag/api/webui/assets/quadrantDiagram-7GDLP6J5-CzGAtLV_.js and b/lightrag/api/webui/assets/quadrantDiagram-7GDLP6J5-9aLJ3TJw.js differ
 
lightrag/api/webui/assets/{radar-MK3ICKWK-CpuAiCbQ.js → radar-MK3ICKWK-B0N6XiM2.js} RENAMED
Binary files a/lightrag/api/webui/assets/radar-MK3ICKWK-CpuAiCbQ.js and b/lightrag/api/webui/assets/radar-MK3ICKWK-B0N6XiM2.js differ
 
lightrag/api/webui/assets/{requirementDiagram-KVF5MWMF-CgGQX3wU.js → requirementDiagram-KVF5MWMF-DqX-DNvM.js} RENAMED
Binary files a/lightrag/api/webui/assets/requirementDiagram-KVF5MWMF-CgGQX3wU.js and b/lightrag/api/webui/assets/requirementDiagram-KVF5MWMF-DqX-DNvM.js differ
 
lightrag/api/webui/assets/{sankeyDiagram-QLVOVGJD-DqnzGw22.js → sankeyDiagram-QLVOVGJD-BrbjIPio.js} RENAMED
Binary files a/lightrag/api/webui/assets/sankeyDiagram-QLVOVGJD-DqnzGw22.js and b/lightrag/api/webui/assets/sankeyDiagram-QLVOVGJD-BrbjIPio.js differ
 
lightrag/api/webui/assets/{sequenceDiagram-X6HHIX6F-YUSWxee1.js → sequenceDiagram-X6HHIX6F-wqcg8nnG.js} RENAMED
Binary files a/lightrag/api/webui/assets/sequenceDiagram-X6HHIX6F-YUSWxee1.js and b/lightrag/api/webui/assets/sequenceDiagram-X6HHIX6F-wqcg8nnG.js differ
 
lightrag/api/webui/assets/{stateDiagram-DGXRK772-DZnU_4RL.js → stateDiagram-DGXRK772-CGL2vL66.js} RENAMED
Binary files a/lightrag/api/webui/assets/stateDiagram-DGXRK772-DZnU_4RL.js and b/lightrag/api/webui/assets/stateDiagram-DGXRK772-CGL2vL66.js differ
 
lightrag/api/webui/assets/{stateDiagram-v2-YXO3MK2T-ZS0tnvcs.js → stateDiagram-v2-YXO3MK2T-DIpE_gWh.js} RENAMED
Binary files a/lightrag/api/webui/assets/stateDiagram-v2-YXO3MK2T-ZS0tnvcs.js and b/lightrag/api/webui/assets/stateDiagram-v2-YXO3MK2T-DIpE_gWh.js differ
 
lightrag/api/webui/assets/{timeline-definition-BDJGKUSR-Cl68_gMM.js → timeline-definition-BDJGKUSR-CwuNSBuu.js} RENAMED
Binary files a/lightrag/api/webui/assets/timeline-definition-BDJGKUSR-Cl68_gMM.js and b/lightrag/api/webui/assets/timeline-definition-BDJGKUSR-CwuNSBuu.js differ