yangdx
commited on
Commit
·
31269c4
1
Parent(s):
ca122a4
Remove unnesessary CLI arguments, reduce CLI arguments complexity
Browse files• Move storage config from CLI
• Move LLM and embedding binding config from CLI
• Remove chunk config from CLI
- lightrag/api/utils_api.py +36 -112
lightrag/api/utils_api.py
CHANGED
@@ -122,47 +122,6 @@ def parse_args() -> argparse.Namespace:
|
|
122 |
description="LightRAG FastAPI Server with separate working and input directories"
|
123 |
)
|
124 |
|
125 |
-
parser.add_argument(
|
126 |
-
"--kv-storage",
|
127 |
-
default=get_env_value(
|
128 |
-
"LIGHTRAG_KV_STORAGE", DefaultRAGStorageConfig.KV_STORAGE
|
129 |
-
),
|
130 |
-
help=f"KV storage implementation (default: {DefaultRAGStorageConfig.KV_STORAGE})",
|
131 |
-
)
|
132 |
-
parser.add_argument(
|
133 |
-
"--doc-status-storage",
|
134 |
-
default=get_env_value(
|
135 |
-
"LIGHTRAG_DOC_STATUS_STORAGE", DefaultRAGStorageConfig.DOC_STATUS_STORAGE
|
136 |
-
),
|
137 |
-
help=f"Document status storage implementation (default: {DefaultRAGStorageConfig.DOC_STATUS_STORAGE})",
|
138 |
-
)
|
139 |
-
parser.add_argument(
|
140 |
-
"--graph-storage",
|
141 |
-
default=get_env_value(
|
142 |
-
"LIGHTRAG_GRAPH_STORAGE", DefaultRAGStorageConfig.GRAPH_STORAGE
|
143 |
-
),
|
144 |
-
help=f"Graph storage implementation (default: {DefaultRAGStorageConfig.GRAPH_STORAGE})",
|
145 |
-
)
|
146 |
-
parser.add_argument(
|
147 |
-
"--vector-storage",
|
148 |
-
default=get_env_value(
|
149 |
-
"LIGHTRAG_VECTOR_STORAGE", DefaultRAGStorageConfig.VECTOR_STORAGE
|
150 |
-
),
|
151 |
-
help=f"Vector storage implementation (default: {DefaultRAGStorageConfig.VECTOR_STORAGE})",
|
152 |
-
)
|
153 |
-
|
154 |
-
# Bindings configuration
|
155 |
-
parser.add_argument(
|
156 |
-
"--llm-binding",
|
157 |
-
default=get_env_value("LLM_BINDING", "ollama"),
|
158 |
-
help="LLM binding to be used. Supported: lollms, ollama, openai (default: from env or ollama)",
|
159 |
-
)
|
160 |
-
parser.add_argument(
|
161 |
-
"--embedding-binding",
|
162 |
-
default=get_env_value("EMBEDDING_BINDING", "ollama"),
|
163 |
-
help="Embedding binding to be used. Supported: lollms, ollama, openai (default: from env or ollama)",
|
164 |
-
)
|
165 |
-
|
166 |
# Server configuration
|
167 |
parser.add_argument(
|
168 |
"--host",
|
@@ -188,65 +147,6 @@ def parse_args() -> argparse.Namespace:
|
|
188 |
help="Directory containing input documents (default: from env or ./inputs)",
|
189 |
)
|
190 |
|
191 |
-
# LLM Model configuration
|
192 |
-
parser.add_argument(
|
193 |
-
"--llm-binding-host",
|
194 |
-
default=get_env_value("LLM_BINDING_HOST", None),
|
195 |
-
help="LLM server host URL. If not provided, defaults based on llm-binding:\n"
|
196 |
-
+ "- ollama: http://localhost:11434\n"
|
197 |
-
+ "- lollms: http://localhost:9600\n"
|
198 |
-
+ "- openai: https://api.openai.com/v1",
|
199 |
-
)
|
200 |
-
|
201 |
-
default_llm_api_key = get_env_value("LLM_BINDING_API_KEY", None)
|
202 |
-
|
203 |
-
parser.add_argument(
|
204 |
-
"--llm-binding-api-key",
|
205 |
-
default=default_llm_api_key,
|
206 |
-
help="llm server API key (default: from env or empty string)",
|
207 |
-
)
|
208 |
-
|
209 |
-
parser.add_argument(
|
210 |
-
"--llm-model",
|
211 |
-
default=get_env_value("LLM_MODEL", "mistral-nemo:latest"),
|
212 |
-
help="LLM model name (default: from env or mistral-nemo:latest)",
|
213 |
-
)
|
214 |
-
|
215 |
-
# Embedding model configuration
|
216 |
-
parser.add_argument(
|
217 |
-
"--embedding-binding-host",
|
218 |
-
default=get_env_value("EMBEDDING_BINDING_HOST", None),
|
219 |
-
help="Embedding server host URL. If not provided, defaults based on embedding-binding:\n"
|
220 |
-
+ "- ollama: http://localhost:11434\n"
|
221 |
-
+ "- lollms: http://localhost:9600\n"
|
222 |
-
+ "- openai: https://api.openai.com/v1",
|
223 |
-
)
|
224 |
-
|
225 |
-
default_embedding_api_key = get_env_value("EMBEDDING_BINDING_API_KEY", "")
|
226 |
-
parser.add_argument(
|
227 |
-
"--embedding-binding-api-key",
|
228 |
-
default=default_embedding_api_key,
|
229 |
-
help="embedding server API key (default: from env or empty string)",
|
230 |
-
)
|
231 |
-
|
232 |
-
parser.add_argument(
|
233 |
-
"--embedding-model",
|
234 |
-
default=get_env_value("EMBEDDING_MODEL", "bge-m3:latest"),
|
235 |
-
help="Embedding model name (default: from env or bge-m3:latest)",
|
236 |
-
)
|
237 |
-
|
238 |
-
parser.add_argument(
|
239 |
-
"--chunk_size",
|
240 |
-
default=get_env_value("CHUNK_SIZE", 1200),
|
241 |
-
help="chunk chunk size default 1200",
|
242 |
-
)
|
243 |
-
|
244 |
-
parser.add_argument(
|
245 |
-
"--chunk_overlap_size",
|
246 |
-
default=get_env_value("CHUNK_OVERLAP_SIZE", 100),
|
247 |
-
help="chunk overlap size default 100",
|
248 |
-
)
|
249 |
-
|
250 |
def timeout_type(value):
|
251 |
if value is None or value == "None":
|
252 |
return None
|
@@ -272,18 +172,6 @@ def parse_args() -> argparse.Namespace:
|
|
272 |
default=get_env_value("MAX_TOKENS", 32768, int),
|
273 |
help="Maximum token size (default: from env or 32768)",
|
274 |
)
|
275 |
-
parser.add_argument(
|
276 |
-
"--embedding-dim",
|
277 |
-
type=int,
|
278 |
-
default=get_env_value("EMBEDDING_DIM", 1024, int),
|
279 |
-
help="Embedding dimensions (default: from env or 1024)",
|
280 |
-
)
|
281 |
-
parser.add_argument(
|
282 |
-
"--max-embed-tokens",
|
283 |
-
type=int,
|
284 |
-
default=get_env_value("MAX_EMBED_TOKENS", 8192, int),
|
285 |
-
help="Maximum embedding token size (default: from env or 8192)",
|
286 |
-
)
|
287 |
|
288 |
# Logging configuration
|
289 |
parser.add_argument(
|
@@ -376,6 +264,42 @@ def parse_args() -> argparse.Namespace:
|
|
376 |
args.working_dir = os.path.abspath(args.working_dir)
|
377 |
args.input_dir = os.path.abspath(args.input_dir)
|
378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
379 |
ollama_server_infos.LIGHTRAG_MODEL = args.simulated_model_name
|
380 |
|
381 |
return args
|
|
|
122 |
description="LightRAG FastAPI Server with separate working and input directories"
|
123 |
)
|
124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
# Server configuration
|
126 |
parser.add_argument(
|
127 |
"--host",
|
|
|
147 |
help="Directory containing input documents (default: from env or ./inputs)",
|
148 |
)
|
149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
def timeout_type(value):
|
151 |
if value is None or value == "None":
|
152 |
return None
|
|
|
172 |
default=get_env_value("MAX_TOKENS", 32768, int),
|
173 |
help="Maximum token size (default: from env or 32768)",
|
174 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
|
176 |
# Logging configuration
|
177 |
parser.add_argument(
|
|
|
264 |
args.working_dir = os.path.abspath(args.working_dir)
|
265 |
args.input_dir = os.path.abspath(args.input_dir)
|
266 |
|
267 |
+
# Inject storage configuration from environment variables
|
268 |
+
args.kv_storage = get_env_value(
|
269 |
+
"LIGHTRAG_KV_STORAGE", DefaultRAGStorageConfig.KV_STORAGE
|
270 |
+
)
|
271 |
+
args.doc_status_storage = get_env_value(
|
272 |
+
"LIGHTRAG_DOC_STATUS_STORAGE", DefaultRAGStorageConfig.DOC_STATUS_STORAGE
|
273 |
+
)
|
274 |
+
args.graph_storage = get_env_value(
|
275 |
+
"LIGHTRAG_GRAPH_STORAGE", DefaultRAGStorageConfig.GRAPH_STORAGE
|
276 |
+
)
|
277 |
+
args.vector_storage = get_env_value(
|
278 |
+
"LIGHTRAG_VECTOR_STORAGE", DefaultRAGStorageConfig.VECTOR_STORAGE
|
279 |
+
)
|
280 |
+
|
281 |
+
# Inject binding configuration
|
282 |
+
args.llm_binding = get_env_value("LLM_BINDING", "ollama")
|
283 |
+
args.embedding_binding = get_env_value("EMBEDDING_BINDING", "ollama")
|
284 |
+
args.llm_binding_host = get_env_value(
|
285 |
+
"LLM_BINDING_HOST", get_default_host(args.llm_binding)
|
286 |
+
)
|
287 |
+
args.embedding_binding_host = get_env_value(
|
288 |
+
"EMBEDDING_BINDING_HOST", get_default_host(args.embedding_binding)
|
289 |
+
)
|
290 |
+
args.llm_binding_api_key = get_env_value("LLM_BINDING_API_KEY", None)
|
291 |
+
args.embedding_binding_api_key = get_env_value("EMBEDDING_BINDING_API_KEY", "")
|
292 |
+
|
293 |
+
# Inject model configuration
|
294 |
+
args.llm_model = get_env_value("LLM_MODEL", "mistral-nemo:latest")
|
295 |
+
args.embedding_model = get_env_value("EMBEDDING_MODEL", "bge-m3:latest")
|
296 |
+
args.embedding_dim = get_env_value("EMBEDDING_DIM", 1024, int)
|
297 |
+
args.max_embed_tokens = get_env_value("MAX_EMBED_TOKENS", 8192, int)
|
298 |
+
|
299 |
+
# Inject chunk configuration
|
300 |
+
args.chunk_size = get_env_value("CHUNK_SIZE", 1200, int)
|
301 |
+
args.chunk_overlap_size = get_env_value("CHUNK_OVERLAP_SIZE", 100, int)
|
302 |
+
|
303 |
ollama_server_infos.LIGHTRAG_MODEL = args.simulated_model_name
|
304 |
|
305 |
return args
|