Files
vllm-omni/vllm_omni/entrypoints/omni.py
T
2025-11-28 14:22:11 +08:00

28 lines
1.1 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
# unify OmniLLM and OmniDiffusion entrypoints
from vllm_omni.diffusion.omni_diffusion import OmniDiffusion
from vllm_omni.diffusion.utils.hf_utils import is_diffusion_model
from vllm_omni.entrypoints.omni_llm import OmniLLM
class Omni:
def __init__(self, *args, **kwargs):
model = args[0] if args else kwargs.get("model", "")
if is_diffusion_model(model):
self.instance: OmniLLM | OmniDiffusion = OmniDiffusion(*args, **kwargs)
else:
self.instance: OmniLLM | OmniDiffusion = OmniLLM(*args, **kwargs)
def __getattr__(self, name):
"""Delegate attribute access to the chosen backend instance."""
return getattr(self.instance, name)
def generate(self, *args, **kwargs):
"""Convenience wrapper to call `generate` on the backend if available."""
if hasattr(self.instance, "generate"):
return getattr(self.instance, "generate")(*args, **kwargs)
raise AttributeError(f"'{self.instance.__class__.__name__}' has no attribute 'generate'")