From 85a7b558abe297083055a2b0cdd696d2080af9e8 Mon Sep 17 00:00:00 2001 From: Taichang Zhou Date: Thu, 12 Feb 2026 21:30:54 +0800 Subject: [PATCH] rebase to v0.16.0 Signed-off-by: Taichang Zhou --- docker/Dockerfile.ci | 4 ++-- vllm_omni/config/model.py | 2 -- vllm_omni/engine/arg_utils.py | 4 ---- vllm_omni/engine/output_processor.py | 7 ++++--- vllm_omni/entrypoints/openai/serving_chat.py | 2 +- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/docker/Dockerfile.ci b/docker/Dockerfile.ci index 500e963b3..72a267bdf 100644 --- a/docker/Dockerfile.ci +++ b/docker/Dockerfile.ci @@ -14,11 +14,11 @@ RUN apt-get update && \ # Install vLLM wheel for the specific commit # URL format: https://wheels.vllm.ai// -# Current vLLM wheel commit: ec12d39d44739bee408ec1473acc09e75daf1a5d +# Current vLLM wheel commit: 2d5be1dd5ce2e44dfea53ea03ff61143da5137eb # Note: --prerelease=allow is required because nightly/commit wheels use # pre-release version numbers (e.g. 2.10.0.dev...) which uv ignores by default, # causing it to fall back to the older stable release from PyPI. -RUN uv pip install --system --upgrade --force-reinstall --prerelease=allow vllm --extra-index-url https://wheels.vllm.ai/ec12d39d44739bee408ec1473acc09e75daf1a5d +RUN uv pip install --system --upgrade --force-reinstall --prerelease=allow vllm --extra-index-url https://wheels.vllm.ai/2d5be1dd5ce2e44dfea53ea03ff61143da5137eb # # Keep flashinfer runtime packages in version sync. # # We derive the version from installed flashinfer (pulled by vllm) diff --git a/vllm_omni/config/model.py b/vllm_omni/config/model.py index 80dcaf7b6..a9ffa015f 100644 --- a/vllm_omni/config/model.py +++ b/vllm_omni/config/model.py @@ -97,7 +97,6 @@ class OmniModelConfig(ModelConfig): def __post_init__( self, # Multimodal config init vars - language_model_only: bool, limit_mm_per_prompt: dict[str, int | dict[str, int]] | None, enable_mm_embeds: bool | None, media_io_kwargs: dict[str, dict[str, Any]] | None, @@ -114,7 +113,6 @@ class OmniModelConfig(ModelConfig): ) -> None: # Call parent's __post_init__ to handle all standard ModelConfig initialization super().__post_init__( - language_model_only=language_model_only, limit_mm_per_prompt=limit_mm_per_prompt, enable_mm_embeds=enable_mm_embeds, media_io_kwargs=media_io_kwargs, diff --git a/vllm_omni/engine/arg_utils.py b/vllm_omni/engine/arg_utils.py index e7ef9f603..6f14aa264 100644 --- a/vllm_omni/engine/arg_utils.py +++ b/vllm_omni/engine/arg_utils.py @@ -109,7 +109,6 @@ class OmniEngineArgs(EngineArgs): self._ensure_omni_models_registered() # Keep compatibility when async args are constructed from partial payloads. - language_model_only = getattr(self, "language_model_only", False) limit_mm_per_prompt = getattr(self, "limit_mm_per_prompt", {}) enable_mm_embeds = getattr(self, "enable_mm_embeds", False) interleave_mm_strings = getattr(self, "interleave_mm_strings", False) @@ -164,7 +163,6 @@ class OmniEngineArgs(EngineArgs): skip_tokenizer_init=self.skip_tokenizer_init, enable_prompt_embeds=self.enable_prompt_embeds, served_model_name=self.served_model_name, - language_model_only=language_model_only, limit_mm_per_prompt=limit_mm_per_prompt, enable_mm_embeds=enable_mm_embeds, interleave_mm_strings=interleave_mm_strings, @@ -267,7 +265,6 @@ class AsyncOmniEngineArgs(AsyncEngineArgs): self._ensure_omni_models_registered() # Keep compatibility when async args are constructed from partial payloads. - language_model_only = getattr(self, "language_model_only", False) limit_mm_per_prompt = getattr(self, "limit_mm_per_prompt", {}) enable_mm_embeds = getattr(self, "enable_mm_embeds", False) interleave_mm_strings = getattr(self, "interleave_mm_strings", False) @@ -322,7 +319,6 @@ class AsyncOmniEngineArgs(AsyncEngineArgs): skip_tokenizer_init=self.skip_tokenizer_init, enable_prompt_embeds=self.enable_prompt_embeds, served_model_name=self.served_model_name, - language_model_only=language_model_only, limit_mm_per_prompt=limit_mm_per_prompt, enable_mm_embeds=enable_mm_embeds, interleave_mm_strings=interleave_mm_strings, diff --git a/vllm_omni/engine/output_processor.py b/vllm_omni/engine/output_processor.py index 6a494f376..c2520f168 100644 --- a/vllm_omni/engine/output_processor.py +++ b/vllm_omni/engine/output_processor.py @@ -205,17 +205,18 @@ class OmniRequestState(RequestState): new_token_ids = self.detokenizer.output_token_ids[self.sent_tokens_offset :] self.sent_tokens_offset = len(self.detokenizer.output_token_ids) - request_id = self.request_id + external_req_id = self.external_req_id output = self._new_completion_output(new_token_ids, finish_reason, stop_reason, routed_experts) if self.parent_req is None: outputs = [output] else: - request_id, outputs, finished = self.parent_req.get_outputs(request_id, output) + outputs, finished = self.parent_req.get_outputs(self.request_id, output) if not outputs: return None + external_req_id = self.parent_req.external_req_id - return self._new_request_output(request_id, outputs, finished, kv_transfer_params) + return self._new_request_output(external_req_id, outputs, finished, kv_transfer_params) def _new_completion_output( self, diff --git a/vllm_omni/entrypoints/openai/serving_chat.py b/vllm_omni/entrypoints/openai/serving_chat.py index 9a669185a..348359af2 100644 --- a/vllm_omni/entrypoints/openai/serving_chat.py +++ b/vllm_omni/entrypoints/openai/serving_chat.py @@ -13,7 +13,7 @@ import torch from fastapi import Request from PIL import Image from pydantic import TypeAdapter -from vllm.renderers.base import BaseRenderer +from vllm.renderers.protocol import BaseRenderer from vllm_omni.entrypoints.async_omni import AsyncOmni from vllm_omni.entrypoints.openai.protocol.chat_completion import OmniChatCompletionResponse