diff --git a/vllm/entrypoints/api_server.py b/vllm/entrypoints/api_server.py index 73f7890ef7d3..9c27bcf2636c 100644 --- a/vllm/entrypoints/api_server.py +++ b/vllm/entrypoints/api_server.py @@ -74,12 +74,18 @@ async def stream_results() -> AsyncGenerator[bytes, None]: parser.add_argument("--port", type=int, default=8000) parser.add_argument("--ssl-keyfile", type=str, default=None) parser.add_argument("--ssl-certfile", type=str, default=None) + parser.add_argument( + "--root-path", + type=str, + default=None, + help="FastAPI root_path when app is behind a path based routing proxy") parser = AsyncEngineArgs.add_cli_args(parser) args = parser.parse_args() engine_args = AsyncEngineArgs.from_cli_args(args) engine = AsyncLLMEngine.from_engine_args(engine_args) + app.root_path = args.root_path uvicorn.run(app, host=args.host, port=args.port, diff --git a/vllm/entrypoints/openai/api_server.py b/vllm/entrypoints/openai/api_server.py index be5f4190e633..886c7840706f 100644 --- a/vllm/entrypoints/openai/api_server.py +++ b/vllm/entrypoints/openai/api_server.py @@ -88,6 +88,11 @@ def parse_args(): type=str, default=None, help="The file path to the SSL cert file") + parser.add_argument( + "--root-path", + type=str, + default=None, + help="FastAPI root_path when app is behind a path based routing proxy") parser = AsyncEngineArgs.add_cli_args(parser) return parser.parse_args() @@ -748,6 +753,7 @@ async def fake_stream_generator() -> AsyncGenerator[str, None]: # Register labels for metrics add_global_metrics_labels(model_name=engine_args.model) + app.root_path = args.root_path uvicorn.run(app, host=args.host, port=args.port,