51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
"""
|
|
Unit tests for MultiModalRegistry.supports_multimodal_inputs and
|
|
Qwen2.5-VL visual component loading behavior.
|
|
"""
|
|
|
|
from types import SimpleNamespace
|
|
|
|
import pytest
|
|
|
|
from vllm.multimodal import MULTIMODAL_REGISTRY
|
|
|
|
from ..models.utils import build_model_context
|
|
|
|
pytestmark = pytest.mark.cpu_test
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"model_id,limit_mm_per_prompt,expected",
|
|
[
|
|
("Qwen/Qwen2-0.5B-Instruct", {}, False),
|
|
("Qwen/Qwen2.5-VL-3B-Instruct", {}, True),
|
|
("Qwen/Qwen2.5-VL-3B-Instruct", {"image": 0, "video": 0}, False),
|
|
("Qwen/Qwen2.5-VL-3B-Instruct", {"image": 0}, True),
|
|
],
|
|
)
|
|
@pytest.mark.core_model
|
|
def test_supports_multimodal_inputs(model_id, limit_mm_per_prompt, expected):
|
|
"""Test supports_multimodal_inputs returns correct boolean for various
|
|
configs."""
|
|
ctx = build_model_context(
|
|
model_id,
|
|
limit_mm_per_prompt=limit_mm_per_prompt,
|
|
)
|
|
assert MULTIMODAL_REGISTRY.supports_multimodal_inputs(ctx.model_config) is expected
|
|
|
|
|
|
def test_create_processor_error_uses_served_model_name():
|
|
model_config = SimpleNamespace(
|
|
is_multimodal_model=False,
|
|
model="/path/to/model/weights",
|
|
served_model_name="friendly-model-name",
|
|
)
|
|
|
|
with pytest.raises(
|
|
ValueError,
|
|
match="friendly-model-name is not a multimodal model",
|
|
):
|
|
MULTIMODAL_REGISTRY.create_processor(model_config)
|