From f7a5146093bc4d16b5607901a8a2509d785777db Mon Sep 17 00:00:00 2001 From: Alex Brooks Date: Fri, 14 Aug 2026 13:13:00 -0600 Subject: [PATCH] [Feat/Bugfix] Fix API Server model tag <-> model sync & flag normalization (#3805) Signed-off-by: Alex Brooks --- vllm_omni/entrypoints/openai/api_server.py | 29 ++++++++-------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/vllm_omni/entrypoints/openai/api_server.py b/vllm_omni/entrypoints/openai/api_server.py index 16114bcb6..1ba26096f 100755 --- a/vllm_omni/entrypoints/openai/api_server.py +++ b/vllm_omni/entrypoints/openai/api_server.py @@ -43,6 +43,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionResponse, ) +from vllm.entrypoints.openai.cli_args import make_arg_parser # yapf conflicts with isort for this block # yapf: disable @@ -3826,26 +3827,16 @@ async def omni_wakeup(request: OmniWakeupRequest, raw_request: Request): if __name__ == "__main__": - import asyncio - - from vllm.entrypoints.openai.cli_args import make_arg_parser - parser = TrackingArgumentParser(description="vLLM-Omni OpenAI-Compatible REST API server") parser = make_arg_parser(parser) - registered_flags = set() - for action in parser._actions: - registered_flags.update(action.option_strings) - - # FIXME - this is broken on `main`. `make_arg_parser` does not handle omni engine args properly. - if "--omni" not in registered_flags: - parser.add_argument("--omni", action="store_true", default=False, help="Enable vLLM-Omni mode.") - if "--enable-sleep-mode" not in registered_flags: - parser.add_argument( - "--enable-sleep-mode", action="store_true", default=False, help="Enable GPU memory pool for sleep mode." - ) + # Ensure that passing --omni won't crash the server. + # NOTE: the value here does not matter since we are always running the Omni server + # when __main__ is called, i.e., --omni is only used when called through the entrypoints. + parser.add_argument("--omni", action="store_true", default=False) args = parser.parse_args() - if not hasattr(args, "model_tag"): - setattr(args, "model_tag", args.model) - if hasattr(args, "model_tag") and args.model_tag is None: - args.model_tag = args.model + # sync args.model to model_tag, because if we pass the model positionally, + # args.model will be the default from vLLM's ModelConfig (currently + # Qwen/Qwen3-0.6B) and crash cryptically. + if args.model_tag is not None: + args.model = args.model_tag asyncio.run(omni_run_server(args))