[Bugfix] Keep --no-guardrails out of diffusion stage config (#7917)
Signed-off-by: levius <2114377220@qq.com>
This commit is contained in:
2 files changed
+26
-2
No files matched your search
@@ -15,7 +15,10 @@ import pytest
|
||||
from pytest_mock import MockerFixture
|
||||
from vllm.v1.engine.utils import EngineZmqAddresses
|
||||
|
||||
from vllm_omni.config.omni_config import VllmOmniDiffusionStageConfig
|
||||
from vllm_omni.config.omni_config import (
|
||||
VllmOmniDiffusionStageConfig,
|
||||
normalize_and_validate_diffusion_engine_ingress_kwargs,
|
||||
)
|
||||
from vllm_omni.config.resolver import OmniConfigResolution
|
||||
from vllm_omni.engine.stage_engine_startup import StageReplicaResources
|
||||
from vllm_omni.engine.stage_runtime import StageEngineLaunch
|
||||
@@ -87,6 +90,26 @@ def _parse_serve_args(argv: list[str]) -> TrackingNamespace:
|
||||
return parser.parse_args(argv)
|
||||
|
||||
|
||||
def test_no_guardrails_is_only_forwarded_as_model_config(mocker: MockerFixture) -> None:
|
||||
"""The CLI alias must not reach the strict diffusion config validator."""
|
||||
parser = TrackingArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest="subparser")
|
||||
OmniServeCommand().subparser_init(subparsers)
|
||||
args = parser.parse_args(["serve", "fake-model", "--omni", "--no-guardrails"])
|
||||
assert args.get_explicit_kwargs_dict()["no_guardrails"] is True
|
||||
|
||||
# Keep the real CLI parser and config validator, but do not start a server.
|
||||
args.headless = True
|
||||
mocker.patch.dict("os.environ", {"VLLM_DISABLE_LOG_LOGO": "1"})
|
||||
mocker.patch("vllm_omni.entrypoints.cli.serve.run_headless")
|
||||
OmniServeCommand.cmd(args)
|
||||
|
||||
explicit = args.get_explicit_kwargs_dict()
|
||||
normalized = normalize_and_validate_diffusion_engine_ingress_kwargs(explicit, stage_id=0)
|
||||
assert normalized["model_config"]["guardrails"] is False
|
||||
assert "no_guardrails" not in explicit
|
||||
|
||||
|
||||
def test_omni_serve_requires_model_when_none_provided() -> None:
|
||||
"""Regression for https://github.com/vllm-project/vllm-omni/issues/4158:
|
||||
``vllm serve --omni`` with no model must fail fast instead of silently
|
||||
|
||||
@@ -149,7 +149,8 @@ class OmniServeCommand(CLISubcommand):
|
||||
args.model_config = model_config
|
||||
explicit_keys = getattr(args, "explicit_keys", None)
|
||||
if explicit_keys is not None:
|
||||
args.explicit_keys = explicit_keys | {"model_config"}
|
||||
# --no-guardrails is a CLI-only alias, not a diffusion engine arg.
|
||||
args.explicit_keys = (explicit_keys - {"no_guardrails"}) | {"model_config"}
|
||||
|
||||
if args.headless:
|
||||
run_headless(args)
|
||||
|
||||
Reference in new issue
Block a user