Parse command line arguments with environment variable fallback Returns: argparse.Namespace: Parsed arguments
()
| 321 | |
| 322 | |
| 323 | def parse_args() -> argparse.Namespace: |
| 324 | """ |
| 325 | Parse command line arguments with environment variable fallback |
| 326 | |
| 327 | Returns: |
| 328 | argparse.Namespace: Parsed arguments |
| 329 | """ |
| 330 | |
| 331 | parser = argparse.ArgumentParser( |
| 332 | description="MiniRAG FastAPI Server with separate working and input directories" |
| 333 | ) |
| 334 | |
| 335 | # Bindings configuration |
| 336 | parser.add_argument( |
| 337 | "--llm-binding", |
| 338 | default=get_env_value("LLM_BINDING", "ollama"), |
| 339 | help="LLM binding to be used. Supported: lollms, ollama, openai (default: from env or ollama)", |
| 340 | ) |
| 341 | parser.add_argument( |
| 342 | "--embedding-binding", |
| 343 | default=get_env_value("EMBEDDING_BINDING", "ollama"), |
| 344 | help="Embedding binding to be used. Supported: lollms, ollama, openai (default: from env or ollama)", |
| 345 | ) |
| 346 | |
| 347 | # Server configuration |
| 348 | parser.add_argument( |
| 349 | "--host", |
| 350 | default=get_env_value("HOST", "0.0.0.0"), |
| 351 | help="Server host (default: from env or 0.0.0.0)", |
| 352 | ) |
| 353 | parser.add_argument( |
| 354 | "--port", |
| 355 | type=int, |
| 356 | default=get_env_value("PORT", 9721, int), |
| 357 | help="Server port (default: from env or 9721)", |
| 358 | ) |
| 359 | |
| 360 | # Directory configuration |
| 361 | parser.add_argument( |
| 362 | "--working-dir", |
| 363 | default=get_env_value("WORKING_DIR", "./rag_storage"), |
| 364 | help="Working directory for RAG storage (default: from env or ./rag_storage)", |
| 365 | ) |
| 366 | parser.add_argument( |
| 367 | "--input-dir", |
| 368 | default=get_env_value("INPUT_DIR", "./inputs"), |
| 369 | help="Directory containing input documents (default: from env or ./inputs)", |
| 370 | ) |
| 371 | |
| 372 | # LLM Model configuration |
| 373 | parser.add_argument( |
| 374 | "--llm-binding-host", |
| 375 | default=get_env_value("LLM_BINDING_HOST", None), |
| 376 | help="LLM server host URL. If not provided, defaults based on llm-binding:\n" |
| 377 | + "- ollama: http://localhost:11434\n" |
| 378 | + "- lollms: http://localhost:9600\n" |
| 379 | + "- openai: https://api.openai.com/v1", |
| 380 | ) |