diff --git a/lightrag/api/lightrag_server.py b/lightrag/api/lightrag_server.py index d4cddd6c..40b63463 100644 --- a/lightrag/api/lightrag_server.py +++ b/lightrag/api/lightrag_server.py @@ -101,12 +101,17 @@ def parse_args(): help="Embedding model name (default: bge-m3:latest)", ) + def timeout_type(value): + if value is None or value == "None": + return None + return int(value) + parser.add_argument( "--timeout", - default=300, - help="Timeout is seconds (useful when using slow AI)", + default=None, + type=timeout_type, + help="Timeout in seconds (useful when using slow AI). Use None for infinite timeout", ) - # RAG configuration parser.add_argument( "--max-async", type=int, default=4, help="Maximum async operations (default: 4)" diff --git a/lightrag/llm.py b/lightrag/llm.py index 4e01dd51..7a51d025 100644 --- a/lightrag/llm.py +++ b/lightrag/llm.py @@ -407,11 +407,10 @@ async def lollms_model_if_cache( full_prompt += prompt request_data["prompt"] = full_prompt - timeout = aiohttp.ClientTimeout(total=kwargs.get("timeout", 300)) # 300 seconds = 5 minutes + timeout = aiohttp.ClientTimeout(total=kwargs.get("timeout", None)) async with aiohttp.ClientSession(timeout=timeout) as session: if stream: - async def inner(): async with session.post( f"{base_url}/lollms_generate", json=request_data