diff --git a/.buildkite/test_areas/misc.yaml b/.buildkite/test_areas/misc.yaml index bc775dbf4e..d2269e3dbb 100644 --- a/.buildkite/test_areas/misc.yaml +++ b/.buildkite/test_areas/misc.yaml @@ -342,7 +342,7 @@ steps: - vllm/entrypoints/chat_utils.py - vllm/entrypoints/mcp/ - vllm/entrypoints/openai/chat_completion/protocol.py - - vllm/entrypoints/openai/engine/protocol.py + - vllm/entrypoints/generate/base/protocol.py - vllm/envs.py - vllm/exceptions.py - vllm/inputs/ diff --git a/rust/src/server/src/routes/openai/utils/structured_outputs.rs b/rust/src/server/src/routes/openai/utils/structured_outputs.rs index 2a7b78fe40..849870f32a 100644 --- a/rust/src/server/src/routes/openai/utils/structured_outputs.rs +++ b/rust/src/server/src/routes/openai/utils/structured_outputs.rs @@ -29,7 +29,7 @@ pub struct JsonSchemaFormat { /// that we can support the vLLM-specific `structural_tag` variant. /// /// Original Python definitions: -/// +/// #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(tag = "type", rename_all = "snake_case")] pub enum ResponseFormat { diff --git a/tests/entrypoints/anthropic/test_anthropic_messages_conversion.py b/tests/entrypoints/anthropic/test_anthropic_messages_conversion.py index 2b4be6f736..436db76a9a 100644 --- a/tests/entrypoints/anthropic/test_anthropic_messages_conversion.py +++ b/tests/entrypoints/anthropic/test_anthropic_messages_conversion.py @@ -32,6 +32,11 @@ from vllm.entrypoints.anthropic.serving import ( AnthropicServingMessages, _build_anthropic_usage, ) +from vllm.entrypoints.generate.base.protocol import ( + DeltaFunctionCall, + DeltaMessage, + DeltaToolCall, +) from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionResponse, ChatCompletionResponseChoice, @@ -39,13 +44,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionStreamResponse, ChatMessage, ) -from vllm.entrypoints.openai.engine.protocol import ( - DeltaFunctionCall, - DeltaMessage, - DeltaToolCall, - PromptTokenUsageInfo, - UsageInfo, -) +from vllm.entrypoints.serve.engine.protocol import PromptTokenUsageInfo, UsageInfo from vllm.entrypoints.serve.exception_handling.handlers.validation import ( validation_exception_handler, ) diff --git a/tests/entrypoints/cohere/test_api_router.py b/tests/entrypoints/cohere/test_api_router.py index 9ab39c334c..72fbc77cd3 100644 --- a/tests/entrypoints/cohere/test_api_router.py +++ b/tests/entrypoints/cohere/test_api_router.py @@ -33,8 +33,8 @@ from vllm.entrypoints.cohere.protocol import ( CohereChatV2Response, ) from vllm.entrypoints.cohere.serving import CohereServingChatV2 -from vllm.entrypoints.openai.engine.protocol import ErrorInfo, ErrorResponse from vllm.entrypoints.scale_out.token_in_token_out.protocol import GenerateRequest +from vllm.entrypoints.serve.engine.protocol import ErrorInfo, ErrorResponse from vllm.entrypoints.serve.exception_handling.handlers.http import ( http_exception_handler, ) diff --git a/tests/entrypoints/generate/generative_scoring/test_generative_scoring.py b/tests/entrypoints/generate/generative_scoring/test_generative_scoring.py index 92c6061545..b67efcc229 100644 --- a/tests/entrypoints/generate/generative_scoring/test_generative_scoring.py +++ b/tests/entrypoints/generate/generative_scoring/test_generative_scoring.py @@ -24,9 +24,9 @@ from vllm.entrypoints.generate.generative_scoring.serving import ( GenerativeScoringResponse, ServingGenerativeScoring, ) -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.models.protocol import BaseModelPath from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.logprobs import Logprob from vllm.outputs import CompletionOutput, RequestOutput from vllm.tokenizers import get_tokenizer diff --git a/tests/entrypoints/launchers/test_run_batch.py b/tests/entrypoints/launchers/test_run_batch.py index c7141df40e..7e6ba3d78d 100644 --- a/tests/entrypoints/launchers/test_run_batch.py +++ b/tests/entrypoints/launchers/test_run_batch.py @@ -21,7 +21,7 @@ from vllm.entrypoints.launchers.run_batch import ( make_transcription_wrapper, upload_data, ) -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.exceptions import VLLMValidationError from vllm.utils.mem_constants import MiB_bytes diff --git a/tests/entrypoints/openai/chat_completion/test_batched_chat_completions.py b/tests/entrypoints/openai/chat_completion/test_batched_chat_completions.py index 0c5698cd14..20218ac6c8 100644 --- a/tests/entrypoints/openai/chat_completion/test_batched_chat_completions.py +++ b/tests/entrypoints/openai/chat_completion/test_batched_chat_completions.py @@ -8,13 +8,13 @@ import httpx import pytest from tests.utils import RemoteOpenAIServer +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata from vllm.entrypoints.openai.chat_completion.batch_serving import ( OpenAIServingChatBatch, ) from vllm.entrypoints.openai.chat_completion.protocol import ( BatchChatCompletionRequest, ) -from vllm.entrypoints.openai.engine.protocol import RequestResponseMetadata from vllm.outputs import CompletionOutput, RequestOutput # any model with a chat template defined in tokenizer_config should work here diff --git a/tests/entrypoints/openai/chat_completion/test_chat_error.py b/tests/entrypoints/openai/chat_completion/test_chat_error.py index 9e805254a2..aafb899f00 100644 --- a/tests/entrypoints/openai/chat_completion/test_chat_error.py +++ b/tests/entrypoints/openai/chat_completion/test_chat_error.py @@ -13,11 +13,10 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ) from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat -from vllm.entrypoints.openai.engine.protocol import GenerationError from vllm.entrypoints.openai.models.protocol import BaseModelPath from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.scale_out.render.serving import ServingRender -from vllm.exceptions import VLLMValidationError +from vllm.exceptions import GenerationError, VLLMValidationError from vllm.outputs import CompletionOutput, RequestOutput from vllm.renderers.hf import HfRenderer from vllm.renderers.online_renderer import OnlineRenderer diff --git a/tests/entrypoints/openai/chat_completion/test_serving_chat.py b/tests/entrypoints/openai/chat_completion/test_serving_chat.py index debf547593..5ad8269b37 100644 --- a/tests/entrypoints/openai/chat_completion/test_serving_chat.py +++ b/tests/entrypoints/openai/chat_completion/test_serving_chat.py @@ -20,6 +20,10 @@ from tests.entrypoints.openai.utils import ( from tests.utils import RemoteOpenAIServer from vllm._aiter_ops import is_aiter_found_and_supported from vllm.config import MultiModalConfig +from vllm.entrypoints.generate.base.protocol import ( + DeltaMessage, + RequestResponseMetadata, +) from vllm.entrypoints.generate.base.serving import build_per_request_timing_metrics from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, @@ -31,17 +35,13 @@ from vllm.entrypoints.openai.chat_completion.serving import ( _make_completion_tokens_details, _make_prompt_tokens_details, ) -from vllm.entrypoints.openai.engine.protocol import ( - DeltaMessage, - ErrorResponse, - RequestResponseMetadata, -) from vllm.entrypoints.openai.models.serving import ( BaseModelPath, OpenAIModelRegistry, OpenAIServingModels, ) from vllm.entrypoints.openai.parser.harmony_utils import get_encoding +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.exceptions import VLLMValidationError from vllm.inputs import TokensPrompt from vllm.multimodal.inputs import PlaceholderRange diff --git a/tests/entrypoints/openai/completion/test_completion_error.py b/tests/entrypoints/openai/completion/test_completion_error.py index 56a2ba66f1..513bde465d 100644 --- a/tests/entrypoints/openai/completion/test_completion_error.py +++ b/tests/entrypoints/openai/completion/test_completion_error.py @@ -8,16 +8,13 @@ from unittest.mock import AsyncMock, MagicMock import pytest from vllm.config.multimodal import MultiModalConfig +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata from vllm.entrypoints.openai.completion.protocol import CompletionRequest from vllm.entrypoints.openai.completion.serving import OpenAIServingCompletion -from vllm.entrypoints.openai.engine.protocol import ( - GenerationError, - RequestResponseMetadata, -) from vllm.entrypoints.openai.models.protocol import BaseModelPath from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.scale_out.render.serving import ServingRender -from vllm.exceptions import VLLMValidationError +from vllm.exceptions import GenerationError, VLLMValidationError from vllm.outputs import CompletionOutput, RequestOutput from vllm.renderers.hf import HfRenderer from vllm.renderers.online_renderer import OnlineRenderer diff --git a/tests/entrypoints/openai/completion/test_lora_resolvers.py b/tests/entrypoints/openai/completion/test_lora_resolvers.py index 30c2ce322f..4d8c3a1fe2 100644 --- a/tests/entrypoints/openai/completion/test_lora_resolvers.py +++ b/tests/entrypoints/openai/completion/test_lora_resolvers.py @@ -11,9 +11,9 @@ import pytest from vllm.config.multimodal import MultiModalConfig from vllm.entrypoints.openai.completion.protocol import CompletionRequest from vllm.entrypoints.openai.completion.serving import OpenAIServingCompletion -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.models.protocol import BaseModelPath from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.lora.request import LoRARequest from vllm.lora.resolver import LoRAResolver, LoRAResolverRegistry from vllm.renderers.hf import HfRenderer diff --git a/tests/entrypoints/openai/responses/test_errors.py b/tests/entrypoints/openai/responses/test_errors.py index a2f1a0f324..0ea7833da9 100644 --- a/tests/entrypoints/openai/responses/test_errors.py +++ b/tests/entrypoints/openai/responses/test_errors.py @@ -7,8 +7,9 @@ from unittest.mock import MagicMock import pytest import vllm.envs as envs -from vllm.entrypoints.generate.base.serving import GenerateBaseServing, GenerationError +from vllm.entrypoints.generate.base.serving import GenerateBaseServing from vllm.envs import disable_envs_cache +from vllm.exceptions import GenerationError @pytest.mark.asyncio diff --git a/tests/entrypoints/openai/responses/test_parsable_context_unit.py b/tests/entrypoints/openai/responses/test_parsable_context_unit.py index 2bad3032c4..01293f62b2 100644 --- a/tests/entrypoints/openai/responses/test_parsable_context_unit.py +++ b/tests/entrypoints/openai/responses/test_parsable_context_unit.py @@ -11,7 +11,7 @@ from unittest.mock import MagicMock import pytest -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, FunctionCall, diff --git a/tests/entrypoints/openai/responses/test_serving_responses.py b/tests/entrypoints/openai/responses/test_serving_responses.py index 51fea46623..723c59cac5 100644 --- a/tests/entrypoints/openai/responses/test_serving_responses.py +++ b/tests/entrypoints/openai/responses/test_serving_responses.py @@ -25,14 +25,13 @@ from openai.types.responses.tool import ( ) import vllm.envs as envs -from vllm.entrypoints.mcp.tool_server import ToolServer -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, - ErrorResponse, RequestResponseMetadata, ) +from vllm.entrypoints.mcp.tool_server import ToolServer from vllm.entrypoints.openai.responses.context import ConversationContext, SimpleContext from vllm.entrypoints.openai.responses.protocol import ( ResponseCreatedEvent, @@ -49,6 +48,7 @@ from vllm.entrypoints.openai.responses.serving import ( from vllm.entrypoints.openai.responses.streaming_events import ( StreamingState, ) +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.inputs import tokens_input from vllm.outputs import CompletionOutput, RequestOutput from vllm.parser.harmony import Segment diff --git a/tests/entrypoints/openai/responses/test_streaming_events.py b/tests/entrypoints/openai/responses/test_streaming_events.py index 1f5fb8862a..6b649aadad 100644 --- a/tests/entrypoints/openai/responses/test_streaming_events.py +++ b/tests/entrypoints/openai/responses/test_streaming_events.py @@ -1,7 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, diff --git a/tests/entrypoints/openai/test_render_parity.py b/tests/entrypoints/openai/test_render_parity.py index 57a113117f..18db2ceb32 100644 --- a/tests/entrypoints/openai/test_render_parity.py +++ b/tests/entrypoints/openai/test_render_parity.py @@ -26,9 +26,9 @@ from openai.types.shared import Reasoning from vllm.config.multimodal import MultiModalConfig from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.entrypoints.openai.responses.serving import OpenAIServingResponses +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.inputs import tokens_input from vllm.renderers.online_renderer import OnlineRenderer from vllm.renderers.params import ChatParams diff --git a/tests/entrypoints/openai/test_tool_choice_content_none.py b/tests/entrypoints/openai/test_tool_choice_content_none.py index 20faec5a53..7db815c45f 100644 --- a/tests/entrypoints/openai/test_tool_choice_content_none.py +++ b/tests/entrypoints/openai/test_tool_choice_content_none.py @@ -5,6 +5,13 @@ import pytest from openai.types.chat.chat_completion import ChatCompletion as OpenAIChatCompletion from openai.types.chat.chat_completion_chunk import ChatCompletionChunk +from vllm.entrypoints.generate.base.protocol import ( + DeltaFunctionCall, + DeltaMessage, + DeltaToolCall, + FunctionCall, + ToolCall, +) from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionResponse, @@ -13,15 +20,8 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionStreamResponse, ChatMessage, ) -from vllm.entrypoints.openai.engine.protocol import ( - DeltaFunctionCall, - DeltaMessage, - DeltaToolCall, - FunctionCall, - ToolCall, - UsageInfo, -) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest +from vllm.entrypoints.serve.engine.protocol import UsageInfo from vllm.parser.abstract_parser import DelegatingParser pytestmark = pytest.mark.skip_global_cleanup diff --git a/tests/entrypoints/openai/utils.py b/tests/entrypoints/openai/utils.py index 36056a44d0..4cc4800bf8 100644 --- a/tests/entrypoints/openai/utils.py +++ b/tests/entrypoints/openai/utils.py @@ -10,7 +10,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionStreamResponse, ChatMessage, ) -from vllm.entrypoints.openai.engine.protocol import UsageInfo +from vllm.entrypoints.serve.engine.protocol import UsageInfo async def accumulate_streaming_response( diff --git a/tests/entrypoints/scale_out/derender/test_derender_stream.py b/tests/entrypoints/scale_out/derender/test_derender_stream.py index 014a8d7bc6..b783f40ae3 100644 --- a/tests/entrypoints/scale_out/derender/test_derender_stream.py +++ b/tests/entrypoints/scale_out/derender/test_derender_stream.py @@ -23,6 +23,7 @@ from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( GenerateResponseStreamChoice, GenerateStreamResponse, ) +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo MODEL_NAME = "hmellor/tiny-random-LlamaForCausalLM" @@ -40,7 +41,6 @@ def _make_stream_chunk( usage: dict | None = None, ) -> GenerateStreamResponse: """Build a GenerateStreamResponse SSE chunk.""" - from vllm.entrypoints.openai.engine.protocol import UsageInfo return GenerateStreamResponse( request_id=request_id, @@ -61,7 +61,6 @@ def _make_usage_chunk( request_id: str = "test-req", ) -> GenerateStreamResponse: """Build a usage only final SSE chunk (empty choices).""" - from vllm.entrypoints.openai.engine.protocol import UsageInfo return GenerateStreamResponse( request_id=request_id, @@ -473,7 +472,6 @@ class TestServingDerenderStreamErrorHandling: @pytest.mark.asyncio @pytest.mark.parametrize("exc", [KeyError("bad byte"), IndexError("oob")]) async def test_completion_stream_bad_state_returns_400(self, exc): - from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( DerenderCompletionStreamRequest, ) @@ -492,7 +490,6 @@ class TestServingDerenderStreamErrorHandling: @pytest.mark.asyncio @pytest.mark.parametrize("exc", [KeyError("bad byte"), IndexError("oob")]) async def test_chat_stream_bad_state_returns_400(self, exc): - from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( DerenderChatStreamRequest, ) diff --git a/tests/entrypoints/scale_out/token_in_token_out/test_generate_stream.py b/tests/entrypoints/scale_out/token_in_token_out/test_generate_stream.py index 99cf457935..ad39958702 100644 --- a/tests/entrypoints/scale_out/token_in_token_out/test_generate_stream.py +++ b/tests/entrypoints/scale_out/token_in_token_out/test_generate_stream.py @@ -9,7 +9,7 @@ from unittest.mock import AsyncMock, MagicMock import pytest from vllm.config.multimodal import MultiModalConfig -from vllm.entrypoints.openai.engine.protocol import GenerationError, StreamOptions +from vllm.entrypoints.generate.base.protocol import StreamOptions from vllm.entrypoints.openai.models.protocol import BaseModelPath from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( @@ -17,6 +17,7 @@ from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( GenerateResponse, ) from vllm.entrypoints.scale_out.token_in_token_out.serving import ServingTokens +from vllm.exceptions import GenerationError from vllm.logprobs import Logprob from vllm.outputs import CompletionOutput, RequestOutput from vllm.renderers import renderer_from_config diff --git a/tests/entrypoints/serve/lora/test_serving_models.py b/tests/entrypoints/serve/lora/test_serving_models.py index e75cbe908b..755f875333 100644 --- a/tests/entrypoints/serve/lora/test_serving_models.py +++ b/tests/entrypoints/serve/lora/test_serving_models.py @@ -9,13 +9,11 @@ import pytest from vllm import PoolingParams from vllm.config import ModelConfig from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, -) from vllm.entrypoints.openai.models.protocol import BaseModelPath from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.pooling.base.serving import PoolingBaseServing from vllm.entrypoints.pooling.typing import PoolingServeContext +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.lora.protocol import ( LoadLoRAAdapterRequest, UnloadLoRAAdapterRequest, diff --git a/tests/entrypoints/serve/utils/test_api_utils.py b/tests/entrypoints/serve/utils/test_api_utils.py index b1bf765595..4f8f7864fe 100644 --- a/tests/entrypoints/serve/utils/test_api_utils.py +++ b/tests/entrypoints/serve/utils/test_api_utils.py @@ -5,7 +5,7 @@ from argparse import Namespace import pytest -from vllm.entrypoints.openai.engine.protocol import StreamOptions +from vllm.entrypoints.generate.base.protocol import StreamOptions from vllm.entrypoints.serve.utils import api_utils from vllm.entrypoints.serve.utils.api_utils import ( get_max_tokens, diff --git a/tests/entrypoints/speech_to_text/transcription/test_transcription_inter_chunk_spacing.py b/tests/entrypoints/speech_to_text/transcription/test_transcription_inter_chunk_spacing.py index 8c99429af1..e2645e6a82 100644 --- a/tests/entrypoints/speech_to_text/transcription/test_transcription_inter_chunk_spacing.py +++ b/tests/entrypoints/speech_to_text/transcription/test_transcription_inter_chunk_spacing.py @@ -19,11 +19,9 @@ import pytest from vllm.config import ModelConfig from vllm.config.speech_to_text import SpeechToTextConfig -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, - RequestResponseMetadata, -) +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.speech_to_text.base.serving import ( SpeechToTextBaseServing, asr_inter_chunk_separator, diff --git a/tests/parser/engine/replay_harness.py b/tests/parser/engine/replay_harness.py index 301433ba5e..824a1ed86d 100644 --- a/tests/parser/engine/replay_harness.py +++ b/tests/parser/engine/replay_harness.py @@ -13,10 +13,10 @@ import json from collections.abc import Sequence from dataclasses import dataclass, field +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage @dataclass diff --git a/tests/parser/engine/streaming_helpers.py b/tests/parser/engine/streaming_helpers.py index 48077ce8ed..55174e7290 100644 --- a/tests/parser/engine/streaming_helpers.py +++ b/tests/parser/engine/streaming_helpers.py @@ -6,7 +6,7 @@ from __future__ import annotations from typing import Any -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage def _build_token_id_map(parser) -> dict[str, int]: diff --git a/tests/parser/engine/test_gemma4_streaming_reasoning.py b/tests/parser/engine/test_gemma4_streaming_reasoning.py index 10681786af..74224c15b7 100644 --- a/tests/parser/engine/test_gemma4_streaming_reasoning.py +++ b/tests/parser/engine/test_gemma4_streaming_reasoning.py @@ -14,10 +14,10 @@ from tests.parser.engine.streaming_helpers import ( collect_tool_arguments, simulate_tool_streaming, ) +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.parser.gemma4 import Gemma4Parser # ── Special token IDs (arbitrary but consistent) ───────────────────── diff --git a/tests/parser/engine/test_parser_engine.py b/tests/parser/engine/test_parser_engine.py index 136efd53c1..330461042b 100644 --- a/tests/parser/engine/test_parser_engine.py +++ b/tests/parser/engine/test_parser_engine.py @@ -15,15 +15,15 @@ import pytest import regex as re from tests.parser.engine.conftest import make_mock_tokenizer -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, - ChatCompletionToolsParam, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaToolCall, FunctionDefinition, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, + ChatCompletionToolsParam, +) from vllm.parser.abstract_parser import DelegatingParser from vllm.parser.engine.adapters import make_adapters from vllm.parser.engine.events import EventType, SemanticEvent diff --git a/tests/parser/mistral/test_tool_calls.py b/tests/parser/mistral/test_tool_calls.py index 99f99008d1..d5e09453a0 100644 --- a/tests/parser/mistral/test_tool_calls.py +++ b/tests/parser/mistral/test_tool_calls.py @@ -25,16 +25,16 @@ from mistral_common.protocol.instruct.tool_calls import ( ) from partial_json_parser.core.options import Allow -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, ExtractedToolCallInformation, StructuralTagResponseFormat, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.parser.engine.events import EventType from vllm.parser.engine.streaming_parser_engine import StreamingParserEngine from vllm.parser.mistral import _DEFAULT_JSON_SCHEMA, MistralParser, mistral_config diff --git a/tests/parser/test_harmony.py b/tests/parser/test_harmony.py index 4c6f953b33..86f157c768 100644 --- a/tests/parser/test_harmony.py +++ b/tests/parser/test_harmony.py @@ -15,8 +15,8 @@ from openai_harmony import ( from transformers import AutoTokenizer, GenerationConfig from vllm.config import StructuredOutputsConfig, VllmConfig +from vllm.entrypoints.generate.base.protocol import FunctionCall from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import FunctionCall from vllm.entrypoints.openai.parser.harmony_utils import ( get_encoding, ) diff --git a/tests/parser/test_include_reasoning.py b/tests/parser/test_include_reasoning.py index a75b351735..35605eb774 100644 --- a/tests/parser/test_include_reasoning.py +++ b/tests/parser/test_include_reasoning.py @@ -10,8 +10,8 @@ import json import pytest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.parser.abstract_parser import DelegatingParser from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser diff --git a/tests/parser/test_streaming.py b/tests/parser/test_streaming.py index 619aa0e491..cad16746be 100644 --- a/tests/parser/test_streaming.py +++ b/tests/parser/test_streaming.py @@ -6,8 +6,8 @@ from types import SimpleNamespace import pytest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.parser.abstract_parser import DelegatingParser from vllm.parser.engine.registered_adapters import Qwen3ParserReasoningAdapter from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser diff --git a/tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/sparse_embeddings_processor.py b/tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/sparse_embeddings_processor.py index b67d1668ff..59025f6839 100644 --- a/tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/sparse_embeddings_processor.py +++ b/tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/sparse_embeddings_processor.py @@ -4,7 +4,7 @@ from collections.abc import Sequence from vllm.config import PoolerConfig, VllmConfig -from vllm.entrypoints.openai.engine.protocol import UsageInfo +from vllm.entrypoints.serve.engine.protocol import UsageInfo from vllm.inputs import PromptType from vllm.outputs import PoolingRequestOutput from vllm.plugins.io_processors.interface import IOProcessor diff --git a/tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/types.py b/tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/types.py index ba69932f45..74245878f9 100644 --- a/tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/types.py +++ b/tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/types.py @@ -5,11 +5,11 @@ from typing import Literal, get_args from pydantic import BaseModel, Field -from vllm.entrypoints.openai.engine.protocol import UsageInfo from vllm.entrypoints.pooling.base.protocol import ( CompletionRequestMixin, EmbedRequestMixin, ) +from vllm.entrypoints.serve.engine.protocol import UsageInfo EmbedTask = Literal[ "sparse", diff --git a/tests/plugins/colbert_query_plugin/colbert_query_processor/query_embedding_processor.py b/tests/plugins/colbert_query_plugin/colbert_query_processor/query_embedding_processor.py index b56807ec15..a35cb91bdb 100644 --- a/tests/plugins/colbert_query_plugin/colbert_query_processor/query_embedding_processor.py +++ b/tests/plugins/colbert_query_plugin/colbert_query_processor/query_embedding_processor.py @@ -4,7 +4,7 @@ from collections.abc import Iterator, Sequence from typing import cast from vllm.config import VllmConfig -from vllm.entrypoints.openai.engine.protocol import UsageInfo +from vllm.entrypoints.serve.engine.protocol import UsageInfo from vllm.inputs import PromptType, TokensPrompt from vllm.outputs import PoolingRequestOutput from vllm.plugins.io_processors.interface import IOProcessor diff --git a/tests/plugins/colbert_query_plugin/colbert_query_processor/types.py b/tests/plugins/colbert_query_plugin/colbert_query_processor/types.py index 9cf0700653..2c78ba07f9 100644 --- a/tests/plugins/colbert_query_plugin/colbert_query_processor/types.py +++ b/tests/plugins/colbert_query_plugin/colbert_query_processor/types.py @@ -5,8 +5,8 @@ from typing import Literal, get_args from pydantic import BaseModel, Field -from vllm.entrypoints.openai.engine.protocol import UsageInfo from vllm.entrypoints.pooling.base.protocol import CompletionRequestMixin +from vllm.entrypoints.serve.engine.protocol import UsageInfo InputType = Literal["query", "document"] INPUT_TYPES: tuple[InputType, ...] = get_args(InputType) diff --git a/tests/reasoning/test_cohere_command_reasoning_parser.py b/tests/reasoning/test_cohere_command_reasoning_parser.py index eeac95319d..5a1359567e 100644 --- a/tests/reasoning/test_cohere_command_reasoning_parser.py +++ b/tests/reasoning/test_cohere_command_reasoning_parser.py @@ -12,14 +12,14 @@ from typing import Any import pytest from pydantic import ValidationError -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( JsonSchemaResponseFormat, ResponseFormat, StructuralTagResponseFormat, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.reasoning.cohere_command_reasoning_parser import ( CohereCommand3ReasoningParser, diff --git a/tests/reasoning/test_deepseekv3_reasoning_parser.py b/tests/reasoning/test_deepseekv3_reasoning_parser.py index 81af6c2db4..03867fb87b 100644 --- a/tests/reasoning/test_deepseekv3_reasoning_parser.py +++ b/tests/reasoning/test_deepseekv3_reasoning_parser.py @@ -4,8 +4,8 @@ import pytest from transformers import AutoTokenizer +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.reasoning import ReasoningParserManager from vllm.reasoning.deepseek_r1_reasoning_parser import DeepSeekR1ReasoningParser from vllm.reasoning.deepseek_v3_reasoning_parser import DeepSeekV3ReasoningParser diff --git a/tests/reasoning/test_kimi_k2_reasoning_parser.py b/tests/reasoning/test_kimi_k2_reasoning_parser.py index e39f8cee74..dc0947fdb2 100644 --- a/tests/reasoning/test_kimi_k2_reasoning_parser.py +++ b/tests/reasoning/test_kimi_k2_reasoning_parser.py @@ -5,8 +5,8 @@ from unittest.mock import MagicMock import pytest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.reasoning.kimi_k2_reasoning_parser import KimiK2ReasoningParser from vllm.tokenizers import get_tokenizer diff --git a/tests/reasoning/test_kimi_k3_reasoning_parser.py b/tests/reasoning/test_kimi_k3_reasoning_parser.py index 4f831e851e..ea5b374e6e 100644 --- a/tests/reasoning/test_kimi_k3_reasoning_parser.py +++ b/tests/reasoning/test_kimi_k3_reasoning_parser.py @@ -3,10 +3,10 @@ import pytest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.parser.kimi_k3 import KimiK3Parser from vllm.parser.parser_manager import ParserManager from vllm.reasoning.kimi_k3_reasoning_parser import KimiK3ReasoningParser diff --git a/tests/reasoning/utils.py b/tests/reasoning/utils.py index e4630cdfa9..6e529c36c8 100644 --- a/tests/reasoning/utils.py +++ b/tests/reasoning/utils.py @@ -1,8 +1,8 @@ # SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.reasoning import ReasoningParser from vllm.utils.mistral import is_mistral_tokenizer diff --git a/tests/tool_parsers/test_dots_tool_parser.py b/tests/tool_parsers/test_dots_tool_parser.py index 151bca5def..460eff07c6 100644 --- a/tests/tool_parsers/test_dots_tool_parser.py +++ b/tests/tool_parsers/test_dots_tool_parser.py @@ -7,11 +7,11 @@ from unittest.mock import MagicMock import pytest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionToolsParam, ) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.tool_parsers import ToolParserManager from vllm.tool_parsers.dots_tool_parser import DotsToolParser diff --git a/tests/tool_parsers/test_ernie45_moe_tool_parser.py b/tests/tool_parsers/test_ernie45_moe_tool_parser.py index ffee62441c..b6f536ca74 100644 --- a/tests/tool_parsers/test_ernie45_moe_tool_parser.py +++ b/tests/tool_parsers/test_ernie45_moe_tool_parser.py @@ -7,12 +7,12 @@ from collections.abc import Generator import pytest -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.tokenizers import TokenizerLike, get_tokenizer from vllm.tokenizers.detokenizer_utils import detokenize_incrementally from vllm.tool_parsers.ernie45_tool_parser import Ernie45ToolParser diff --git a/tests/tool_parsers/test_gigachat3_tool_parser.py b/tests/tool_parsers/test_gigachat3_tool_parser.py index 00a9709513..a011fbf080 100644 --- a/tests/tool_parsers/test_gigachat3_tool_parser.py +++ b/tests/tool_parsers/test_gigachat3_tool_parser.py @@ -10,7 +10,7 @@ from tests.tool_parsers.utils import ( run_tool_extraction, run_tool_extraction_streaming, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall +from vllm.entrypoints.generate.base.protocol import FunctionCall from vllm.tokenizers import TokenizerLike from vllm.tool_parsers import ToolParser, ToolParserManager diff --git a/tests/tool_parsers/test_glm47_moe_tool_parser.py b/tests/tool_parsers/test_glm47_moe_tool_parser.py index 224fea08d7..dc4b726a53 100644 --- a/tests/tool_parsers/test_glm47_moe_tool_parser.py +++ b/tests/tool_parsers/test_glm47_moe_tool_parser.py @@ -9,12 +9,12 @@ from unittest.mock import Mock import pytest from openai.types.responses import ResponseFunctionToolCall +from vllm.entrypoints.generate.base.protocol import FunctionCall from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionToolsParam, FunctionDefinition, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.entrypoints.openai.responses.utils import build_response_output_items from vllm.tokenizers import get_tokenizer diff --git a/tests/tool_parsers/test_granite4_tool_parser.py b/tests/tool_parsers/test_granite4_tool_parser.py index 96bba0ebc8..83086598c5 100644 --- a/tests/tool_parsers/test_granite4_tool_parser.py +++ b/tests/tool_parsers/test_granite4_tool_parser.py @@ -7,10 +7,10 @@ from typing import Any import pytest from transformers import AutoTokenizer -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ) +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.tool_parsers.granite4_tool_parser import Granite4ToolParser MODEL = "ibm-granite/granite-4.0-h-tiny" diff --git a/tests/tool_parsers/test_hunyuan_a13b_tool_parser.py b/tests/tool_parsers/test_hunyuan_a13b_tool_parser.py index 167ad66889..7a0bbec45e 100644 --- a/tests/tool_parsers/test_hunyuan_a13b_tool_parser.py +++ b/tests/tool_parsers/test_hunyuan_a13b_tool_parser.py @@ -11,7 +11,7 @@ from tests.tool_parsers.utils import ( run_tool_extraction, run_tool_extraction_streaming, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall, ToolCall +from vllm.entrypoints.generate.base.protocol import FunctionCall, ToolCall from vllm.tool_parsers import ToolParser, ToolParserManager diff --git a/tests/tool_parsers/test_hy_v3_tool_parser.py b/tests/tool_parsers/test_hy_v3_tool_parser.py index b5aaaf5298..8377de331a 100644 --- a/tests/tool_parsers/test_hy_v3_tool_parser.py +++ b/tests/tool_parsers/test_hy_v3_tool_parser.py @@ -8,12 +8,12 @@ from unittest.mock import Mock import pytest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionToolsParam, FunctionDefinition, ) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.tokenizers import get_tokenizer from vllm.tool_parsers.hy_v3_tool_parser import HYV3ToolParser diff --git a/tests/tool_parsers/test_jamba_tool_parser.py b/tests/tool_parsers/test_jamba_tool_parser.py index 9eb7404209..33f44fe838 100644 --- a/tests/tool_parsers/test_jamba_tool_parser.py +++ b/tests/tool_parsers/test_jamba_tool_parser.py @@ -8,7 +8,7 @@ import partial_json_parser import pytest from partial_json_parser.core.options import Allow -from vllm.entrypoints.openai.engine.protocol import DeltaMessage, FunctionCall, ToolCall +from vllm.entrypoints.generate.base.protocol import DeltaMessage, FunctionCall, ToolCall from vllm.tokenizers import TokenizerLike, get_tokenizer from vllm.tokenizers.detokenizer_utils import detokenize_incrementally from vllm.tool_parsers.jamba_tool_parser import JambaToolParser diff --git a/tests/tool_parsers/test_lfm2_tool_parser.py b/tests/tool_parsers/test_lfm2_tool_parser.py index 0cb865fef5..9ed30e1598 100644 --- a/tests/tool_parsers/test_lfm2_tool_parser.py +++ b/tests/tool_parsers/test_lfm2_tool_parser.py @@ -10,7 +10,7 @@ from tests.tool_parsers.utils import ( run_tool_extraction, run_tool_extraction_streaming, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall +from vllm.entrypoints.generate.base.protocol import FunctionCall from vllm.tokenizers import TokenizerLike from vllm.tool_parsers import ToolParser, ToolParserManager diff --git a/tests/tool_parsers/test_llama3_json_tool_parser.py b/tests/tool_parsers/test_llama3_json_tool_parser.py index 7040fe87d0..b8e1944481 100644 --- a/tests/tool_parsers/test_llama3_json_tool_parser.py +++ b/tests/tool_parsers/test_llama3_json_tool_parser.py @@ -6,7 +6,7 @@ from unittest.mock import MagicMock, patch import pytest from transformers import AutoTokenizer -from vllm.entrypoints.openai.engine.protocol import ExtractedToolCallInformation +from vllm.entrypoints.generate.base.protocol import ExtractedToolCallInformation from vllm.tool_parsers.llama_tool_parser import Llama3JsonToolParser LLAMA_MODEL = "meta-llama/Llama-3.2-1B-Instruct" diff --git a/tests/tool_parsers/test_llama4_pythonic_tool_parser.py b/tests/tool_parsers/test_llama4_pythonic_tool_parser.py index 1328d05716..a3995c9f4b 100644 --- a/tests/tool_parsers/test_llama4_pythonic_tool_parser.py +++ b/tests/tool_parsers/test_llama4_pythonic_tool_parser.py @@ -9,7 +9,7 @@ from tests.tool_parsers.utils import ( run_tool_extraction, run_tool_extraction_streaming, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall +from vllm.entrypoints.generate.base.protocol import FunctionCall from vllm.tokenizers import TokenizerLike from vllm.tool_parsers import ToolParser, ToolParserManager diff --git a/tests/tool_parsers/test_minicpm5xml_tool_parser.py b/tests/tool_parsers/test_minicpm5xml_tool_parser.py index f4549f40c7..c46553966a 100644 --- a/tests/tool_parsers/test_minicpm5xml_tool_parser.py +++ b/tests/tool_parsers/test_minicpm5xml_tool_parser.py @@ -9,11 +9,11 @@ from unittest.mock import MagicMock import pytest from tests.tool_parsers.utils import run_tool_extraction_streaming +from vllm.entrypoints.generate.base.protocol import FunctionCall, ToolCall from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionToolsParam, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall, ToolCall from vllm.tool_parsers import ToolParser, ToolParserManager from vllm.tool_parsers.minicpm5xml_tool_parser import MiniCPM5XMLToolParser diff --git a/tests/tool_parsers/test_minimax_m3_tool_parser.py b/tests/tool_parsers/test_minimax_m3_tool_parser.py index 43de33a14e..575892217a 100644 --- a/tests/tool_parsers/test_minimax_m3_tool_parser.py +++ b/tests/tool_parsers/test_minimax_m3_tool_parser.py @@ -6,11 +6,11 @@ from typing import Any import pytest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionToolsParam, FunctionDefinition, ) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.tool_parsers import ToolParserManager from vllm.tool_parsers.minimax_m3_tool_parser import MinimaxM3ToolParser diff --git a/tests/tool_parsers/test_olmo3_tool_parser.py b/tests/tool_parsers/test_olmo3_tool_parser.py index 4c418ba11d..1928607222 100644 --- a/tests/tool_parsers/test_olmo3_tool_parser.py +++ b/tests/tool_parsers/test_olmo3_tool_parser.py @@ -9,7 +9,7 @@ from tests.tool_parsers.utils import ( run_tool_extraction, run_tool_extraction_streaming, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall +from vllm.entrypoints.generate.base.protocol import FunctionCall from vllm.tokenizers import TokenizerLike from vllm.tool_parsers import ToolParser, ToolParserManager diff --git a/tests/tool_parsers/test_pythonic_tool_parser.py b/tests/tool_parsers/test_pythonic_tool_parser.py index 9d97c7f58d..05ddc411f1 100644 --- a/tests/tool_parsers/test_pythonic_tool_parser.py +++ b/tests/tool_parsers/test_pythonic_tool_parser.py @@ -9,7 +9,7 @@ from tests.tool_parsers.utils import ( run_tool_extraction, run_tool_extraction_streaming, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall +from vllm.entrypoints.generate.base.protocol import FunctionCall from vllm.tokenizers import TokenizerLike from vllm.tool_parsers import ToolParser, ToolParserManager diff --git a/tests/tool_parsers/test_qwen3coder_tool_parser.py b/tests/tool_parsers/test_qwen3coder_tool_parser.py index 7222625dbb..946d490f94 100644 --- a/tests/tool_parsers/test_qwen3coder_tool_parser.py +++ b/tests/tool_parsers/test_qwen3coder_tool_parser.py @@ -9,6 +9,11 @@ import pytest from openai.types.responses.function_tool import FunctionTool from xgrammar import StructuralTag +from vllm.entrypoints.generate.base.protocol import ( + DeltaMessage, + FunctionCall, + ToolCall, +) from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionNamedFunction, ChatCompletionNamedToolChoiceParam, @@ -16,11 +21,6 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionToolsParam, FunctionDefinition, ) -from vllm.entrypoints.openai.engine.protocol import ( - DeltaMessage, - FunctionCall, - ToolCall, -) from vllm.parser.abstract_parser import DelegatingParser from vllm.tokenizers import TokenizerLike, get_tokenizer from vllm.tokenizers.detokenizer_utils import detokenize_incrementally diff --git a/tests/tool_parsers/test_step3p5_tool_parser.py b/tests/tool_parsers/test_step3p5_tool_parser.py index 8391a5b75d..d8f1f9332d 100644 --- a/tests/tool_parsers/test_step3p5_tool_parser.py +++ b/tests/tool_parsers/test_step3p5_tool_parser.py @@ -6,15 +6,15 @@ from collections.abc import Generator import pytest -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, - ChatCompletionToolsParam, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, + ChatCompletionToolsParam, +) from vllm.tokenizers import TokenizerLike, get_tokenizer from vllm.tokenizers.detokenizer_utils import detokenize_incrementally from vllm.tool_parsers.step3p5_tool_parser import Step3p5ToolParser diff --git a/tests/tool_parsers/test_xlam_tool_parser.py b/tests/tool_parsers/test_xlam_tool_parser.py index 5d39f0b575..4478e97a60 100644 --- a/tests/tool_parsers/test_xlam_tool_parser.py +++ b/tests/tool_parsers/test_xlam_tool_parser.py @@ -6,12 +6,12 @@ from collections.abc import Generator import pytest -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.tokenizers import TokenizerLike, get_tokenizer from vllm.tokenizers.detokenizer_utils import detokenize_incrementally from vllm.tool_parsers.xlam_tool_parser import xLAMToolParser diff --git a/tests/tool_parsers/utils.py b/tests/tool_parsers/utils.py index c7dfdc4616..bf28183280 100644 --- a/tests/tool_parsers/utils.py +++ b/tests/tool_parsers/utils.py @@ -3,13 +3,13 @@ from collections.abc import Iterable -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.tokenizers import TokenizerLike from vllm.tool_parsers import ToolParser diff --git a/tests/tool_use/test_kimi_k3_tool_parser.py b/tests/tool_use/test_kimi_k3_tool_parser.py index 118c51db57..b300b848e3 100644 --- a/tests/tool_use/test_kimi_k3_tool_parser.py +++ b/tests/tool_use/test_kimi_k3_tool_parser.py @@ -5,10 +5,10 @@ import json import pytest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.entrypoints.openai.responses.utils import build_response_output_items from vllm.exceptions import VLLMValidationError diff --git a/vllm/entrypoints/anthropic/api_router.py b/vllm/entrypoints/anthropic/api_router.py index 584a295801..bea6e82a13 100644 --- a/vllm/entrypoints/anthropic/api_router.py +++ b/vllm/entrypoints/anthropic/api_router.py @@ -16,7 +16,7 @@ from vllm.entrypoints.anthropic.protocol import ( AnthropicMessagesResponse, ) from vllm.entrypoints.anthropic.serving import AnthropicServingMessages -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.exception_handling.error_response import ( create_error_response, ) diff --git a/vllm/entrypoints/anthropic/serving.py b/vllm/entrypoints/anthropic/serving.py index 74e25f087d..fe0d752d4e 100644 --- a/vllm/entrypoints/anthropic/serving.py +++ b/vllm/entrypoints/anthropic/serving.py @@ -30,6 +30,11 @@ from vllm.entrypoints.anthropic.protocol import ( AnthropicUsage, ) from vllm.entrypoints.chat_utils import ChatTemplateContentFormatOption +from vllm.entrypoints.generate.base.protocol import ( + JsonSchemaResponseFormat, + ResponseFormat, + StreamOptions, +) from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionNamedToolChoiceParam, ChatCompletionRequest, @@ -38,14 +43,8 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionToolsParam, ) from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, - JsonSchemaResponseFormat, - ResponseFormat, - StreamOptions, - UsageInfo, -) from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo from vllm.entrypoints.serve.exception_handling.utils import sanitize_message from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.renderers.online_renderer import OnlineRenderer diff --git a/vllm/entrypoints/cohere/api_router.py b/vllm/entrypoints/cohere/api_router.py index 2c31442e2a..f0f8d0c786 100644 --- a/vllm/entrypoints/cohere/api_router.py +++ b/vllm/entrypoints/cohere/api_router.py @@ -38,7 +38,7 @@ from fastapi.responses import JSONResponse, Response, StreamingResponse from starlette.middleware.base import BaseHTTPMiddleware import vllm.envs as envs -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.exception_handling.utils import sanitize_message from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, diff --git a/vllm/entrypoints/cohere/cohere_chat_message.py b/vllm/entrypoints/cohere/cohere_chat_message.py index 6d221adce3..042856dea6 100644 --- a/vllm/entrypoints/cohere/cohere_chat_message.py +++ b/vllm/entrypoints/cohere/cohere_chat_message.py @@ -29,11 +29,9 @@ from typing import Any, Literal from pydantic import Field, model_serializer +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatMessage -from vllm.entrypoints.openai.engine.protocol import ( - DeltaMessage, - OpenAIBaseModel, -) +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel class CitationSource(OpenAIBaseModel): diff --git a/vllm/entrypoints/cohere/serving.py b/vllm/entrypoints/cohere/serving.py index 0d5d84a731..8ec4701907 100644 --- a/vllm/entrypoints/cohere/serving.py +++ b/vllm/entrypoints/cohere/serving.py @@ -71,6 +71,11 @@ from vllm.entrypoints.cohere.protocol import ( ToolCallStartEvent, ToolPlanDeltaEvent, ) +from vllm.entrypoints.generate.base.protocol import ( + JsonSchemaResponseFormat, + ResponseFormat, + StreamOptions, +) from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionResponse, @@ -79,13 +84,8 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatMessage, ) from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, - JsonSchemaResponseFormat, - ResponseFormat, - StreamOptions, -) from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ErrorInfo, ErrorResponse from vllm.entrypoints.serve.exception_handling.utils import sanitize_message from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.parser.abstract_parser import Parser @@ -1761,7 +1761,6 @@ class CohereServingChatV2(OpenAIServingChat): # so the router can translate the envelope uniformly. ``param`` # is accepted for signature parity with the base class but is # not surfaced in the Cohere wire format. - from vllm.entrypoints.openai.engine.protocol import ErrorInfo del param # unused; kept for signature compatibility return ErrorResponse( diff --git a/vllm/entrypoints/openai/engine/protocol.py b/vllm/entrypoints/generate/base/protocol.py similarity index 75% rename from vllm/entrypoints/openai/engine/protocol.py rename to vllm/entrypoints/generate/base/protocol.py index 9635ece46b..cf9d807852 100644 --- a/vllm/entrypoints/openai/engine/protocol.py +++ b/vllm/entrypoints/generate/base/protocol.py @@ -4,9 +4,7 @@ # Adapted from # https://github.com/lm-sys/FastChat/blob/168ccc29d3f7edc50823016105c024fe2282732a/fastchat/protocol/openai_api_protocol.py import json -import time -from http import HTTPStatus -from typing import Annotated, Any, ClassVar, Literal, TypeAlias +from typing import Annotated, Any, Literal, TypeAlias import regex as re from pydantic import ( @@ -14,16 +12,15 @@ from pydantic import ( ConfigDict, Field, model_serializer, - model_validator, ) import vllm.envs as envs from vllm.config.utils import replace from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.exceptions import VLLMServerError, VLLMValidationError +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo +from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger from vllm.sampling_params import StructuredOutputsParams -from vllm.utils import random_uuid from vllm.utils.import_utils import resolve_obj_by_qualname logger = init_logger(__name__) @@ -33,102 +30,6 @@ StopParam: TypeAlias = ( ) -class OpenAIBaseModel(BaseModel): - # OpenAI API does allow extra fields - model_config = ConfigDict(extra="allow") - - # Cache class field names - field_names: ClassVar[set[str] | None] = None - - @model_validator(mode="wrap") - @classmethod - def __log_extra_fields__(cls, data, handler): - result = handler(data) - if not isinstance(data, dict): - return result - field_names = cls.field_names - if field_names is None: - # Get all class field names and their potential aliases - field_names = set() - for field_name, field in cls.model_fields.items(): - field_names.add(field_name) - if alias := getattr(field, "alias", None): - field_names.add(alias) - cls.field_names = field_names - - # Compare against both field names and aliases - if any(k not in field_names for k in data): - logger.debug( - "The following fields were present in the request but ignored: %s", - data.keys() - field_names, - ) - return result - - -class ErrorInfo(OpenAIBaseModel): - message: str - type: str - param: str | None = None - code: int - - -class ErrorResponse(OpenAIBaseModel): - error: ErrorInfo - - -class ModelPermission(OpenAIBaseModel): - id: str = Field(default_factory=lambda: f"modelperm-{random_uuid()}") - object: str = "model_permission" - created: int = Field(default_factory=lambda: int(time.time())) - allow_create_engine: bool = False - allow_sampling: bool = True - allow_logprobs: bool = True - allow_search_indices: bool = False - allow_view: bool = True - allow_fine_tuning: bool = False - organization: str = "*" - group: str | None = None - is_blocking: bool = False - - -class ModelCard(OpenAIBaseModel): - id: str - object: str = "model" - created: int = Field(default_factory=lambda: int(time.time())) - owned_by: str = "vllm" - root: str | None = None - parent: str | None = None - max_model_len: int | None = None - permission: list[ModelPermission] = Field(default_factory=list) - - -class ModelList(OpenAIBaseModel): - object: str = "list" - data: list[ModelCard] = Field(default_factory=list) - - -class PromptTokenUsageInfo(OpenAIBaseModel): - cached_tokens: int | None = None - created_cache_tokens: int | None = None - multimodal_tokens: dict[str, int] | None = None - """Prompt tokens contributed by each input modality, keyed by modality name - (e.g. `image`, `audio`, `video`). A breakdown of the multimodal - placeholder tokens already counted in `prompt_tokens`; `None` when the - request has no multimodal input.""" - - -class CompletionTokenUsageInfo(OpenAIBaseModel): - reasoning_tokens: int = 0 - - -class UsageInfo(OpenAIBaseModel): - prompt_tokens: int = 0 - total_tokens: int = 0 - completion_tokens: int | None = 0 - prompt_tokens_details: PromptTokenUsageInfo | None = None - completion_tokens_details: CompletionTokenUsageInfo | None = None - - class SpeculativeDecodingMetrics(OpenAIBaseModel): """Per-request speculative-decoding acceptance metrics. @@ -437,11 +338,3 @@ class DeltaMessage(OpenAIBaseModel): if len(data.get("tool_calls", [])) == 0: data.pop("tool_calls", None) return data - - -class GenerationError(VLLMServerError): - """raised when finish_reason indicates internal server error (500)""" - - def __init__(self, message: str = "Internal server error"): - super().__init__(message) - self.status_code = HTTPStatus.INTERNAL_SERVER_ERROR diff --git a/vllm/entrypoints/generate/base/serving.py b/vllm/entrypoints/generate/base/serving.py index d6ae0a2090..0532828011 100644 --- a/vllm/entrypoints/generate/base/serving.py +++ b/vllm/entrypoints/generate/base/serving.py @@ -5,27 +5,28 @@ import time from collections.abc import Awaitable, Mapping from dataclasses import dataclass, field from http import HTTPStatus -from typing import TYPE_CHECKING, ClassVar, Generic, TypeVar +from typing import ClassVar, Generic, TypeVar from fastapi import Request from pydantic import ConfigDict from starlette.datastructures import Headers +from vllm import RequestOutput from vllm.engine.protocol import EngineClient -from vllm.entrypoints.generate.beam_search.online import BeamSearchOnlineMixin -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.completion.protocol import CompletionRequest -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, - GenerationError, +from vllm.entrypoints.generate.base.protocol import ( PerRequestMetrics, SpeculativeDecodingMetrics, ) +from vllm.entrypoints.generate.beam_search.online import BeamSearchOnlineMixin +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest +from vllm.entrypoints.openai.completion.protocol import CompletionRequest from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.openai.responses.protocol import ResponsesRequest +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.engine.serving import BaseServing from vllm.entrypoints.serve.engine.typing import AnyRequest from vllm.entrypoints.serve.utils.request_logger import RequestLogger +from vllm.exceptions import GenerationError from vllm.inputs import EngineInput from vllm.logger import init_logger from vllm.logprobs import Logprob, PromptLogprobs @@ -38,9 +39,6 @@ from vllm.tracing import ( ) from vllm.v1.metrics.stats import RequestStateStats -if TYPE_CHECKING: - from vllm.outputs import RequestOutput - logger = init_logger(__name__) RequestT = TypeVar("RequestT", bound=AnyRequest) diff --git a/vllm/entrypoints/generate/generative_scoring/api_router.py b/vllm/entrypoints/generate/generative_scoring/api_router.py index 480dac822f..d3e2316fcd 100644 --- a/vllm/entrypoints/generate/generative_scoring/api_router.py +++ b/vllm/entrypoints/generate/generative_scoring/api_router.py @@ -9,7 +9,7 @@ from vllm.entrypoints.generate.generative_scoring.serving import ( GenerativeScoringResponse, ServingGenerativeScoring, ) -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, validate_json_request, diff --git a/vllm/entrypoints/generate/generative_scoring/serving.py b/vllm/entrypoints/generate/generative_scoring/serving.py index f566b9c66e..55b695184e 100644 --- a/vllm/entrypoints/generate/generative_scoring/serving.py +++ b/vllm/entrypoints/generate/generative_scoring/serving.py @@ -18,12 +18,12 @@ from fastapi import Request from pydantic import Field from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ( ErrorResponse, OpenAIBaseModel, UsageInfo, ) -from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.serve.engine.serving import BaseServing from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.inputs import EngineInput, tokens_input diff --git a/vllm/entrypoints/launchers/run_batch.py b/vllm/entrypoints/launchers/run_batch.py index 4c63aea18e..8d1be95b70 100644 --- a/vllm/entrypoints/launchers/run_batch.py +++ b/vllm/entrypoints/launchers/run_batch.py @@ -35,11 +35,6 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionResponse, ) -from vllm.entrypoints.openai.engine.protocol import ( - ErrorInfo, - ErrorResponse, - OpenAIBaseModel, -) from vllm.entrypoints.pooling.embed.protocol import ( EmbeddingRequest, EmbeddingResponse, @@ -51,6 +46,11 @@ from vllm.entrypoints.pooling.scoring.protocol import ( ScoreResponse, ) from vllm.entrypoints.serve import create_error_response +from vllm.entrypoints.serve.engine.protocol import ( + ErrorInfo, + ErrorResponse, + OpenAIBaseModel, +) from vllm.entrypoints.speech_to_text.transcription.protocol import ( TranscriptionRequest, TranscriptionResponse, diff --git a/vllm/entrypoints/openai/chat_completion/api_router.py b/vllm/entrypoints/openai/chat_completion/api_router.py index 30b53678bb..291907a77a 100644 --- a/vllm/entrypoints/openai/chat_completion/api_router.py +++ b/vllm/entrypoints/openai/chat_completion/api_router.py @@ -14,8 +14,8 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionResponse, ) from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.sse_keep_alive import with_sse_keep_alive +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, validate_json_request, diff --git a/vllm/entrypoints/openai/chat_completion/batch_serving.py b/vllm/entrypoints/openai/chat_completion/batch_serving.py index 1b0934e501..ab26d2a549 100644 --- a/vllm/entrypoints/openai/chat_completion/batch_serving.py +++ b/vllm/entrypoints/openai/chat_completion/batch_serving.py @@ -9,6 +9,7 @@ from http import HTTPStatus from fastapi import Request from vllm.entrypoints.chat_utils import ConversationMessage +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata from vllm.entrypoints.openai.chat_completion.protocol import ( BatchChatCompletionRequest, ChatCompletionResponse, @@ -16,11 +17,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatMessage, ) from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, - RequestResponseMetadata, - UsageInfo, -) +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo from vllm.entrypoints.serve.utils.api_utils import get_max_tokens from vllm.inputs import EngineInput from vllm.logger import init_logger diff --git a/vllm/entrypoints/openai/chat_completion/protocol.py b/vllm/entrypoints/openai/chat_completion/protocol.py index 964e93313d..1a49206316 100644 --- a/vllm/entrypoints/openai/chat_completion/protocol.py +++ b/vllm/entrypoints/openai/chat_completion/protocol.py @@ -23,21 +23,20 @@ from vllm.entrypoints.chat_utils import ( ChatCompletionMessageParam, ChatTemplateContentFormatOption, ) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( AnyResponseFormat, DeltaMessage, FunctionCall, FunctionDefinition, - OpenAIBaseModel, PerRequestMetrics, StopParam, StreamOptions, ToolCall, - UsageInfo, structured_outputs_from_response_format, validate_structural_tag_response_format, validate_structured_outputs_structural_tag, ) +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger from vllm.logprobs import Logprob diff --git a/vllm/entrypoints/openai/chat_completion/serving.py b/vllm/entrypoints/openai/chat_completion/serving.py index 8259ef65f4..d8755ed0a1 100644 --- a/vllm/entrypoints/openai/chat_completion/serving.py +++ b/vllm/entrypoints/openai/chat_completion/serving.py @@ -16,9 +16,15 @@ from vllm.entrypoints.chat_utils import ( ConversationMessage, make_tool_call_id, ) +from vllm.entrypoints.generate.base.protocol import ( + DeltaMessage, + FunctionCall, + PerRequestMetrics, + RequestResponseMetadata, + ToolCall, +) from vllm.entrypoints.generate.base.serving import ( GenerateBaseServing, - GenerationError, build_per_request_timing_metrics, build_spec_decoding_metrics, clamp_prompt_logprobs, @@ -36,23 +42,19 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionStreamResponse, ChatMessage, ) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ( CompletionTokenUsageInfo, - DeltaMessage, ErrorResponse, - FunctionCall, - PerRequestMetrics, PromptTokenUsageInfo, - RequestResponseMetadata, - ToolCall, UsageInfo, ) -from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.serve.utils.api_utils import get_max_tokens, should_include_usage from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.entrypoints.serve.utils.tool_calls_utils import ( maybe_filter_parallel_tool_calls, ) +from vllm.exceptions import GenerationError from vllm.inputs import EngineInput, MultiModalPlaceholders from vllm.logger import init_logger from vllm.logprobs import Logprob diff --git a/vllm/entrypoints/openai/completion/api_router.py b/vllm/entrypoints/openai/completion/api_router.py index d5bef1ebf4..7b33fcdb6c 100644 --- a/vllm/entrypoints/openai/completion/api_router.py +++ b/vllm/entrypoints/openai/completion/api_router.py @@ -12,8 +12,8 @@ from vllm.entrypoints.openai.completion.protocol import ( CompletionResponse, ) from vllm.entrypoints.openai.completion.serving import OpenAIServingCompletion -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.sse_keep_alive import with_sse_keep_alive +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, validate_json_request, diff --git a/vllm/entrypoints/openai/completion/protocol.py b/vllm/entrypoints/openai/completion/protocol.py index 590eba205b..4edef74ea7 100644 --- a/vllm/entrypoints/openai/completion/protocol.py +++ b/vllm/entrypoints/openai/completion/protocol.py @@ -10,17 +10,16 @@ from pydantic import Field, model_validator import vllm.envs as envs from vllm.config import ModelConfig -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( AnyResponseFormat, - OpenAIBaseModel, PerRequestMetrics, StopParam, StreamOptions, - UsageInfo, structured_outputs_from_response_format, validate_structural_tag_response_format, validate_structured_outputs_structural_tag, ) +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger from vllm.logprobs import Logprob diff --git a/vllm/entrypoints/openai/completion/serving.py b/vllm/entrypoints/openai/completion/serving.py index 29a8e44933..d5fb3557fe 100644 --- a/vllm/entrypoints/openai/completion/serving.py +++ b/vllm/entrypoints/openai/completion/serving.py @@ -10,9 +10,12 @@ from typing import cast from fastapi import Request from vllm.engine.protocol import EngineClient +from vllm.entrypoints.generate.base.protocol import ( + PerRequestMetrics, + RequestResponseMetadata, +) from vllm.entrypoints.generate.base.serving import ( GenerateBaseServing, - GenerationError, build_per_request_timing_metrics, build_spec_decoding_metrics, clamp_prompt_logprobs, @@ -26,17 +29,15 @@ from vllm.entrypoints.openai.completion.protocol import ( CompletionResponseStreamChoice, CompletionStreamResponse, ) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ( ErrorResponse, - PerRequestMetrics, PromptTokenUsageInfo, - RequestResponseMetadata, UsageInfo, ) -from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.serve.utils.api_utils import get_max_tokens, should_include_usage from vllm.entrypoints.serve.utils.request_logger import RequestLogger -from vllm.exceptions import VLLMValidationError +from vllm.exceptions import GenerationError, VLLMValidationError from vllm.inputs import EngineInput from vllm.logger import init_logger from vllm.logprobs import Logprob diff --git a/vllm/entrypoints/openai/engine/__init__.py b/vllm/entrypoints/openai/engine/__init__.py deleted file mode 100644 index 208f01a7cb..0000000000 --- a/vllm/entrypoints/openai/engine/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project diff --git a/vllm/entrypoints/openai/models/serving.py b/vllm/entrypoints/openai/models/serving.py index 9ceb8c7dfb..7378d37c6e 100644 --- a/vllm/entrypoints/openai/models/serving.py +++ b/vllm/entrypoints/openai/models/serving.py @@ -7,14 +7,14 @@ from http import HTTPStatus from vllm.config import ModelConfig from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.openai.models.protocol import BaseModelPath, LoRAModulePath +from vllm.entrypoints.serve import create_error_response +from vllm.entrypoints.serve.engine.protocol import ( ErrorResponse, ModelCard, ModelList, ModelPermission, ) -from vllm.entrypoints.openai.models.protocol import BaseModelPath, LoRAModulePath -from vllm.entrypoints.serve import create_error_response from vllm.entrypoints.serve.lora.protocol import ( LoadLoRAAdapterRequest, UnloadLoRAAdapterRequest, diff --git a/vllm/entrypoints/openai/responses/api_router.py b/vllm/entrypoints/openai/responses/api_router.py index 7f83a44e67..08b2b5584e 100644 --- a/vllm/entrypoints/openai/responses/api_router.py +++ b/vllm/entrypoints/openai/responses/api_router.py @@ -8,13 +8,13 @@ from http import HTTPStatus from fastapi import APIRouter, Depends, FastAPI, Request from fastapi.responses import JSONResponse, StreamingResponse -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.responses.protocol import ( ResponsesRequest, ResponsesResponse, StreamingResponsesResponse, ) from vllm.entrypoints.openai.responses.serving import OpenAIServingResponses +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, validate_json_request, diff --git a/vllm/entrypoints/openai/responses/context.py b/vllm/entrypoints/openai/responses/context.py index 72b3ea92b8..2268bb0700 100644 --- a/vllm/entrypoints/openai/responses/context.py +++ b/vllm/entrypoints/openai/responses/context.py @@ -24,11 +24,9 @@ from vllm import envs from vllm.entrypoints.chat_utils import ( ChatTemplateContentFormatOption, ) +from vllm.entrypoints.generate.base.protocol import FunctionCall from vllm.entrypoints.mcp.tool import Tool from vllm.entrypoints.mcp.tool_server import ToolServer -from vllm.entrypoints.openai.engine.protocol import ( - FunctionCall, -) from vllm.entrypoints.openai.parser.harmony_utils import render_for_completion from vllm.entrypoints.openai.responses.protocol import ( ResponseInputOutputItem, diff --git a/vllm/entrypoints/openai/responses/protocol.py b/vllm/entrypoints/openai/responses/protocol.py index 691e9f30e3..0363c01de3 100644 --- a/vllm/entrypoints/openai/responses/protocol.py +++ b/vllm/entrypoints/openai/responses/protocol.py @@ -60,7 +60,8 @@ from vllm.entrypoints.chat_utils import ( ChatCompletionMessageParam, ChatTemplateContentFormatOption, ) -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, StopParam +from vllm.entrypoints.generate.base.protocol import StopParam +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger from vllm.renderers import ChatParams, TokenizeParams, merge_kwargs diff --git a/vllm/entrypoints/openai/responses/serving.py b/vllm/entrypoints/openai/responses/serving.py index 20a331f42a..5ac5a69cdb 100644 --- a/vllm/entrypoints/openai/responses/serving.py +++ b/vllm/entrypoints/openai/responses/serving.py @@ -31,16 +31,12 @@ from vllm.entrypoints.chat_utils import ( ChatCompletionMessageParam, ChatTemplateContentFormatOption, ) -from vllm.entrypoints.generate.base.serving import ( - GenerateBaseServing, - GenerationError, -) -from vllm.entrypoints.mcp.tool_server import ToolServer -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, - ErrorResponse, RequestResponseMetadata, ) +from vllm.entrypoints.generate.base.serving import GenerateBaseServing +from vllm.entrypoints.mcp.tool_server import ToolServer from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.openai.parser.harmony_utils import ( build_harmony_preamble, @@ -89,9 +85,10 @@ from vllm.entrypoints.openai.responses.utils import ( extract_function_tool_names, extract_tool_types, ) +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import get_max_tokens from vllm.entrypoints.serve.utils.request_logger import RequestLogger -from vllm.exceptions import VLLMValidationError +from vllm.exceptions import GenerationError, VLLMValidationError from vllm.inputs import EngineInput, tokens_input from vllm.logger import init_logger from vllm.logprobs import Logprob as SampleLogprob diff --git a/vllm/entrypoints/openai/responses/streaming_events.py b/vllm/entrypoints/openai/responses/streaming_events.py index 531a35c572..b45264f8c3 100644 --- a/vllm/entrypoints/openai/responses/streaming_events.py +++ b/vllm/entrypoints/openai/responses/streaming_events.py @@ -61,8 +61,8 @@ from openai.types.responses.response_reasoning_item import ( from openai.types.responses.tool import Tool from openai_harmony import Message as HarmonyMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage, DeltaToolCall from vllm.entrypoints.mcp.tool_server import ToolServer -from vllm.entrypoints.openai.engine.protocol import DeltaMessage, DeltaToolCall from vllm.entrypoints.openai.parser.harmony_utils import ( extract_function_from_recipient, is_function_recipient, diff --git a/vllm/entrypoints/openai/responses/utils.py b/vllm/entrypoints/openai/responses/utils.py index d3de64844a..686c1fa292 100644 --- a/vllm/entrypoints/openai/responses/utils.py +++ b/vllm/entrypoints/openai/responses/utils.py @@ -31,11 +31,11 @@ from openai.types.responses.tool import Tool from vllm import envs from vllm.entrypoints.chat_utils import make_tool_call_id +from vllm.entrypoints.generate.base.protocol import FunctionCall, FunctionDefinition from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionMessageParam, ChatCompletionToolsParam, ) -from vllm.entrypoints.openai.engine.protocol import FunctionCall, FunctionDefinition from vllm.entrypoints.openai.responses.protocol import ResponseInputOutputItem from vllm.logger import init_logger from vllm.tool_parsers.utils import ( diff --git a/vllm/entrypoints/pooling/base/protocol.py b/vllm/entrypoints/pooling/base/protocol.py index dcdf453662..dc9e0b6be8 100644 --- a/vllm/entrypoints/pooling/base/protocol.py +++ b/vllm/entrypoints/pooling/base/protocol.py @@ -11,7 +11,7 @@ from vllm.entrypoints.chat_utils import ( ChatCompletionMessageParam, ChatTemplateContentFormatOption, ) -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel from vllm.exceptions import VLLMValidationError from vllm.renderers import ChatParams, TokenizeParams, merge_kwargs from vllm.tasks import check_removed_pooling_task diff --git a/vllm/entrypoints/pooling/base/serving.py b/vllm/entrypoints/pooling/base/serving.py index 36b1c22e61..0b9239e622 100644 --- a/vllm/entrypoints/pooling/base/serving.py +++ b/vllm/entrypoints/pooling/base/serving.py @@ -16,7 +16,6 @@ from vllm import PoolingRequestOutput, envs from vllm.config import VllmConfig from vllm.engine.protocol import EngineClient from vllm.entrypoints.chat_utils import ChatTemplateConfig -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.serve.engine.serving import BaseServing from vllm.entrypoints.serve.engine.typing import AnyRequest @@ -30,6 +29,7 @@ from vllm.tracing import ( ) from vllm.utils.async_utils import make_async, merge_async_iterators +from ...serve.engine.protocol import ErrorResponse from ..typing import AnyPoolingRequest, PoolingServeContext from .io_processor import PoolingIOProcessor diff --git a/vllm/entrypoints/pooling/classify/protocol.py b/vllm/entrypoints/pooling/classify/protocol.py index 1b09319c29..b7f3c7d332 100644 --- a/vllm/entrypoints/pooling/classify/protocol.py +++ b/vllm/entrypoints/pooling/classify/protocol.py @@ -7,7 +7,7 @@ from typing import Annotated, TypeAlias from pydantic import BeforeValidator, Field from vllm import PoolingParams -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, UsageInfo +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.logger import init_logger from vllm.utils import random_uuid diff --git a/vllm/entrypoints/pooling/classify/serving.py b/vllm/entrypoints/pooling/classify/serving.py index 232483ca3a..8c9fe5137e 100644 --- a/vllm/entrypoints/pooling/classify/serving.py +++ b/vllm/entrypoints/pooling/classify/serving.py @@ -6,7 +6,7 @@ from typing import TypeAlias import numpy as np from fastapi.responses import JSONResponse -from vllm.entrypoints.openai.engine.protocol import UsageInfo +from vllm.entrypoints.serve.engine.protocol import UsageInfo from vllm.logger import init_logger from vllm.outputs import ClassificationOutput diff --git a/vllm/entrypoints/pooling/embed/api_router.py b/vllm/entrypoints/pooling/embed/api_router.py index adee8a9431..af23285aee 100644 --- a/vllm/entrypoints/pooling/embed/api_router.py +++ b/vllm/entrypoints/pooling/embed/api_router.py @@ -5,7 +5,7 @@ from http import HTTPStatus from fastapi import APIRouter, Depends, Request -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, validate_json_request, diff --git a/vllm/entrypoints/pooling/embed/protocol.py b/vllm/entrypoints/pooling/embed/protocol.py index d319131a1d..c9a423d8a7 100644 --- a/vllm/entrypoints/pooling/embed/protocol.py +++ b/vllm/entrypoints/pooling/embed/protocol.py @@ -18,7 +18,7 @@ from pydantic import BaseModel, BeforeValidator, Field, model_validator from vllm import PoolingParams from vllm.entrypoints.chat_utils import ChatCompletionMessageParam -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, UsageInfo +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.utils import random_uuid from ..base.protocol import ( diff --git a/vllm/entrypoints/pooling/pooling/api_router.py b/vllm/entrypoints/pooling/pooling/api_router.py index 40f7b9eb28..eab50dbad8 100644 --- a/vllm/entrypoints/pooling/pooling/api_router.py +++ b/vllm/entrypoints/pooling/pooling/api_router.py @@ -4,7 +4,7 @@ from http import HTTPStatus from fastapi import APIRouter, Depends, Request -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, validate_json_request, diff --git a/vllm/entrypoints/pooling/pooling/protocol.py b/vllm/entrypoints/pooling/pooling/protocol.py index b7edda18c7..078f2e63d6 100644 --- a/vllm/entrypoints/pooling/pooling/protocol.py +++ b/vllm/entrypoints/pooling/pooling/protocol.py @@ -7,7 +7,7 @@ from pydantic import BeforeValidator, Field from vllm import PoolingParams from vllm.config import ModelConfig -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, UsageInfo +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.renderers import TokenizeParams from vllm.tasks import PoolingTask from vllm.utils import random_uuid diff --git a/vllm/entrypoints/pooling/scoring/api_router.py b/vllm/entrypoints/pooling/scoring/api_router.py index a26b3ca6d0..90be32ba24 100644 --- a/vllm/entrypoints/pooling/scoring/api_router.py +++ b/vllm/entrypoints/pooling/scoring/api_router.py @@ -4,7 +4,7 @@ from http import HTTPStatus from fastapi import APIRouter, Depends, Request -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, validate_json_request, diff --git a/vllm/entrypoints/pooling/scoring/protocol.py b/vllm/entrypoints/pooling/scoring/protocol.py index 5b25dd0d88..62227af0d4 100644 --- a/vllm/entrypoints/pooling/scoring/protocol.py +++ b/vllm/entrypoints/pooling/scoring/protocol.py @@ -7,7 +7,7 @@ from pydantic import BaseModel, Field, model_validator from vllm import PoolingParams from vllm.config import ModelConfig -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, UsageInfo +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.renderers import TokenizeParams from vllm.tasks import PoolingTask from vllm.utils import random_uuid diff --git a/vllm/entrypoints/pooling/scoring/serving.py b/vllm/entrypoints/pooling/scoring/serving.py index 34a2887d54..d9a067dbab 100644 --- a/vllm/entrypoints/pooling/scoring/serving.py +++ b/vllm/entrypoints/pooling/scoring/serving.py @@ -5,7 +5,7 @@ from fastapi.responses import JSONResponse, Response from vllm import PoolingParams from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import UsageInfo +from vllm.entrypoints.serve.engine.protocol import UsageInfo from vllm.logger import init_logger from vllm.outputs import PoolingRequestOutput, ScoringRequestOutput from vllm.tasks import SCORE_TYPE_MAP, SupportedTask diff --git a/vllm/entrypoints/pooling/utils.py b/vllm/entrypoints/pooling/utils.py index b6d91332ef..7be0c926bf 100644 --- a/vllm/entrypoints/pooling/utils.py +++ b/vllm/entrypoints/pooling/utils.py @@ -14,7 +14,7 @@ import torch from fastapi.responses import JSONResponse, StreamingResponse from vllm.config import ModelConfig -from vllm.entrypoints.openai.engine.protocol import UsageInfo +from vllm.entrypoints.serve.engine.protocol import UsageInfo from vllm.logger import init_logger from vllm.outputs import PoolingRequestOutput from vllm.tasks import SupportedTask diff --git a/vllm/entrypoints/scale_out/derender/api_router.py b/vllm/entrypoints/scale_out/derender/api_router.py index 4a139144db..c92ba0b185 100644 --- a/vllm/entrypoints/scale_out/derender/api_router.py +++ b/vllm/entrypoints/scale_out/derender/api_router.py @@ -5,7 +5,7 @@ from http import HTTPStatus from fastapi import APIRouter, Depends, Request from fastapi.responses import JSONResponse -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import validate_json_request from vllm.logger import init_logger diff --git a/vllm/entrypoints/scale_out/derender/serving.py b/vllm/entrypoints/scale_out/derender/serving.py index d9e0919c00..4e4024a909 100644 --- a/vllm/entrypoints/scale_out/derender/serving.py +++ b/vllm/entrypoints/scale_out/derender/serving.py @@ -12,14 +12,11 @@ from vllm.entrypoints.openai.completion.protocol import ( CompletionResponse, CompletionStreamResponse, ) -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, - UsageInfo, -) from vllm.entrypoints.openai.models.serving import ( OpenAIModelRegistry, OpenAIServingModels, ) +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo from vllm.entrypoints.serve.engine.serving import BaseServing from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.inputs import ( diff --git a/vllm/entrypoints/scale_out/render/api_router.py b/vllm/entrypoints/scale_out/render/api_router.py index b54d2c8e0a..634dcef4e3 100644 --- a/vllm/entrypoints/scale_out/render/api_router.py +++ b/vllm/entrypoints/scale_out/render/api_router.py @@ -8,7 +8,7 @@ from fastapi.responses import JSONResponse from vllm.entrypoints.anthropic.protocol import AnthropicMessagesRequest from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.entrypoints.openai.completion.protocol import CompletionRequest -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import validate_json_request from vllm.logger import init_logger diff --git a/vllm/entrypoints/scale_out/render/serving.py b/vllm/entrypoints/scale_out/render/serving.py index 8b573e7a15..e800dfebe5 100644 --- a/vllm/entrypoints/scale_out/render/serving.py +++ b/vllm/entrypoints/scale_out/render/serving.py @@ -6,7 +6,6 @@ from vllm.entrypoints.anthropic.protocol import AnthropicMessagesRequest from vllm.entrypoints.anthropic.serving import AnthropicServingMessages from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.entrypoints.openai.completion.protocol import CompletionRequest -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.models.serving import ( OpenAIModelRegistry, OpenAIServingModels, @@ -17,6 +16,7 @@ from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( MultiModalFeatures, PlaceholderRangeInfo, ) +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.engine.serving import BaseServing from vllm.entrypoints.serve.utils.api_utils import get_max_tokens from vllm.entrypoints.serve.utils.request_logger import RequestLogger diff --git a/vllm/entrypoints/scale_out/token_in_token_out/api_router.py b/vllm/entrypoints/scale_out/token_in_token_out/api_router.py index 30857e4c1c..2fc707cec4 100644 --- a/vllm/entrypoints/scale_out/token_in_token_out/api_router.py +++ b/vllm/entrypoints/scale_out/token_in_token_out/api_router.py @@ -10,7 +10,6 @@ from fastapi import APIRouter, Depends, FastAPI, HTTPException, Request, Respons from fastapi.responses import JSONResponse, StreamingResponse from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.serve.tokenize.serving import ServingTokenization from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, @@ -19,6 +18,7 @@ from vllm.entrypoints.serve.utils.api_utils import ( ) from vllm.logger import init_logger +from ...serve.engine.protocol import ErrorResponse from .protocol import ( GenerateRequest, GenerateResponse, diff --git a/vllm/entrypoints/scale_out/token_in_token_out/protocol.py b/vllm/entrypoints/scale_out/token_in_token_out/protocol.py index e4338bf6bf..3b790d54d3 100644 --- a/vllm/entrypoints/scale_out/token_in_token_out/protocol.py +++ b/vllm/entrypoints/scale_out/token_in_token_out/protocol.py @@ -11,6 +11,7 @@ from pydantic import ( ) from vllm.config import ModelConfig +from vllm.entrypoints.generate.base.protocol import StreamOptions from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionLogProbs, ChatCompletionRequest, @@ -20,7 +21,7 @@ from vllm.entrypoints.openai.completion.protocol import ( CompletionRequest, CompletionStreamResponse, ) -from vllm.entrypoints.openai.engine.protocol import StreamOptions, UsageInfo +from vllm.entrypoints.serve.engine.protocol import UsageInfo from vllm.logprobs import Logprob from vllm.renderers import TokenizeParams from vllm.sampling_params import SamplingParams diff --git a/vllm/entrypoints/scale_out/token_in_token_out/serving.py b/vllm/entrypoints/scale_out/token_in_token_out/serving.py index 90d12f118e..d63f904b03 100644 --- a/vllm/entrypoints/scale_out/token_in_token_out/serving.py +++ b/vllm/entrypoints/scale_out/token_in_token_out/serving.py @@ -12,6 +12,7 @@ from fastapi import Request from vllm.engine.protocol import EngineClient from vllm.entrypoints.chat_utils import AsyncMultiModalItemTracker +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata from vllm.entrypoints.generate.base.serving import ( GenerateBaseServing, clamp_prompt_logprobs, @@ -21,16 +22,15 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionLogProbs, ChatCompletionLogProbsContent, ) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ( ErrorResponse, - GenerationError, PromptTokenUsageInfo, - RequestResponseMetadata, UsageInfo, ) -from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.serve.utils.api_utils import get_max_tokens, should_include_usage from vllm.entrypoints.serve.utils.request_logger import RequestLogger +from vllm.exceptions import GenerationError from vllm.inputs import EngineInput, TokensPrompt, mm_input from vllm.logger import init_logger from vllm.logprobs import Logprob diff --git a/vllm/entrypoints/serve/elastic_ep/api_router.py b/vllm/entrypoints/serve/elastic_ep/api_router.py index 52c68d3321..1dbfc96b9b 100644 --- a/vllm/entrypoints/serve/elastic_ep/api_router.py +++ b/vllm/entrypoints/serve/elastic_ep/api_router.py @@ -9,10 +9,8 @@ from fastapi import APIRouter, Depends, FastAPI, HTTPException, Request from fastapi.responses import JSONResponse from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, -) from vllm.entrypoints.serve.elastic_ep.middleware import get_scaling_elastic_ep +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import validate_json_request from vllm.logger import init_logger diff --git a/vllm/entrypoints/serve/engine/protocol.py b/vllm/entrypoints/serve/engine/protocol.py new file mode 100644 index 0000000000..10765e20aa --- /dev/null +++ b/vllm/entrypoints/serve/engine/protocol.py @@ -0,0 +1,115 @@ +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: Copyright contributors to the vLLM project + +# Adapted from +# https://github.com/lm-sys/FastChat/blob/168ccc29d3f7edc50823016105c024fe2282732a/fastchat/protocol/openai_api_protocol.py +import time +from typing import ClassVar + +from pydantic import ( + BaseModel, + ConfigDict, + Field, + model_validator, +) + +from vllm.logger import init_logger +from vllm.utils import random_uuid + +logger = init_logger(__name__) + + +class OpenAIBaseModel(BaseModel): + # OpenAI API does allow extra fields + model_config = ConfigDict(extra="allow") + + # Cache class field names + field_names: ClassVar[set[str] | None] = None + + @model_validator(mode="wrap") + @classmethod + def __log_extra_fields__(cls, data, handler): + result = handler(data) + if not isinstance(data, dict): + return result + field_names = cls.field_names + if field_names is None: + # Get all class field names and their potential aliases + field_names = set() + for field_name, field in cls.model_fields.items(): + field_names.add(field_name) + if alias := getattr(field, "alias", None): + field_names.add(alias) + cls.field_names = field_names + + # Compare against both field names and aliases + if any(k not in field_names for k in data): + logger.debug( + "The following fields were present in the request but ignored: %s", + data.keys() - field_names, + ) + return result + + +class ErrorInfo(OpenAIBaseModel): + message: str + type: str + param: str | None = None + code: int + + +class ErrorResponse(OpenAIBaseModel): + error: ErrorInfo + + +class ModelPermission(OpenAIBaseModel): + id: str = Field(default_factory=lambda: f"modelperm-{random_uuid()}") + object: str = "model_permission" + created: int = Field(default_factory=lambda: int(time.time())) + allow_create_engine: bool = False + allow_sampling: bool = True + allow_logprobs: bool = True + allow_search_indices: bool = False + allow_view: bool = True + allow_fine_tuning: bool = False + organization: str = "*" + group: str | None = None + is_blocking: bool = False + + +class ModelCard(OpenAIBaseModel): + id: str + object: str = "model" + created: int = Field(default_factory=lambda: int(time.time())) + owned_by: str = "vllm" + root: str | None = None + parent: str | None = None + max_model_len: int | None = None + permission: list[ModelPermission] = Field(default_factory=list) + + +class ModelList(OpenAIBaseModel): + object: str = "list" + data: list[ModelCard] = Field(default_factory=list) + + +class PromptTokenUsageInfo(OpenAIBaseModel): + cached_tokens: int | None = None + created_cache_tokens: int | None = None + multimodal_tokens: dict[str, int] | None = None + """Prompt tokens contributed by each input modality, keyed by modality name + (e.g. `image`, `audio`, `video`). A breakdown of the multimodal + placeholder tokens already counted in `prompt_tokens`; `None` when the + request has no multimodal input.""" + + +class CompletionTokenUsageInfo(OpenAIBaseModel): + reasoning_tokens: int = 0 + + +class UsageInfo(OpenAIBaseModel): + prompt_tokens: int = 0 + total_tokens: int = 0 + completion_tokens: int | None = 0 + prompt_tokens_details: PromptTokenUsageInfo | None = None + completion_tokens_details: CompletionTokenUsageInfo | None = None diff --git a/vllm/entrypoints/serve/engine/serving.py b/vllm/entrypoints/serve/engine/serving.py index a31e47d9c5..23e3927203 100644 --- a/vllm/entrypoints/serve/engine/serving.py +++ b/vllm/entrypoints/serve/engine/serving.py @@ -6,13 +6,13 @@ from fastapi import Request from vllm import PromptType, SamplingParams, envs from vllm.config import ModelConfig -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.models.serving import ( OpenAIModelRegistry, OpenAIServingModels, ) from vllm.entrypoints.pooling.typing import AnyPoolingRequest from vllm.entrypoints.serve import create_error_response +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.engine.typing import AnyRequest from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.exceptions import VLLMNotFoundError diff --git a/vllm/entrypoints/serve/exception_handling/error_response.py b/vllm/entrypoints/serve/exception_handling/error_response.py index bb31c1d335..6412a30840 100644 --- a/vllm/entrypoints/serve/exception_handling/error_response.py +++ b/vllm/entrypoints/serve/exception_handling/error_response.py @@ -2,13 +2,10 @@ # SPDX-FileCopyrightText: Copyright contributors to the vLLM project from http import HTTPStatus -from vllm.entrypoints.openai.engine.protocol import ( - ErrorInfo, - ErrorResponse, - GenerationError, -) +from vllm.exceptions import GenerationError from vllm.logger import init_logger +from ..engine.protocol import ErrorInfo, ErrorResponse from .utils import sanitize_message logger = init_logger(__name__) diff --git a/vllm/entrypoints/serve/exception_handling/handlers/http.py b/vllm/entrypoints/serve/exception_handling/handlers/http.py index d838c0ae10..85488aa0c6 100644 --- a/vllm/entrypoints/serve/exception_handling/handlers/http.py +++ b/vllm/entrypoints/serve/exception_handling/handlers/http.py @@ -5,7 +5,7 @@ from http import HTTPStatus from fastapi import HTTPException, Request from starlette.responses import JSONResponse -from vllm.entrypoints.openai.engine.protocol import ErrorInfo, ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorInfo, ErrorResponse from vllm.logger import init_logger from ..utils import sanitize_message diff --git a/vllm/entrypoints/serve/exception_handling/handlers/validation.py b/vllm/entrypoints/serve/exception_handling/handlers/validation.py index fc02389ef6..7c1f568eda 100644 --- a/vllm/entrypoints/serve/exception_handling/handlers/validation.py +++ b/vllm/entrypoints/serve/exception_handling/handlers/validation.py @@ -8,7 +8,7 @@ from fastapi import Request from fastapi.exceptions import RequestValidationError from starlette.responses import JSONResponse -from vllm.entrypoints.openai.engine.protocol import ErrorInfo, ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorInfo, ErrorResponse from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger diff --git a/vllm/entrypoints/serve/exception_handling/handlers/vllm_error.py b/vllm/entrypoints/serve/exception_handling/handlers/vllm_error.py index 213c451167..3ee5f0a065 100644 --- a/vllm/entrypoints/serve/exception_handling/handlers/vllm_error.py +++ b/vllm/entrypoints/serve/exception_handling/handlers/vllm_error.py @@ -5,8 +5,7 @@ from fastapi import Request from starlette.responses import JSONResponse from vllm.entrypoints.launchers.launcher import terminate_if_errored -from vllm.entrypoints.openai.engine.protocol import GenerationError -from vllm.exceptions import VLLMError +from vllm.exceptions import GenerationError, VLLMError from vllm.logger import init_logger from vllm.v1.engine.exceptions import EngineDeadError, EngineGenerateError diff --git a/vllm/entrypoints/serve/fault_tolerance/api_router.py b/vllm/entrypoints/serve/fault_tolerance/api_router.py index 960833af21..22dad84a26 100644 --- a/vllm/entrypoints/serve/fault_tolerance/api_router.py +++ b/vllm/entrypoints/serve/fault_tolerance/api_router.py @@ -8,7 +8,7 @@ from fastapi import APIRouter, BackgroundTasks, Depends, FastAPI, HTTPException, from fastapi.responses import JSONResponse from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import validate_json_request from vllm.logger import init_logger from vllm.v1.fault_tolerance.utils import FaultToleranceRequest diff --git a/vllm/entrypoints/serve/lora/api_router.py b/vllm/entrypoints/serve/lora/api_router.py index 511aeaa07b..95dff9792b 100644 --- a/vllm/entrypoints/serve/lora/api_router.py +++ b/vllm/entrypoints/serve/lora/api_router.py @@ -7,11 +7,9 @@ from fastapi import APIRouter, Depends, FastAPI, Request from fastapi.responses import JSONResponse, Response from vllm import envs -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, -) from vllm.entrypoints.openai.models.api_router import models from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.lora.protocol import ( LoadLoRAAdapterRequest, UnloadLoRAAdapterRequest, diff --git a/vllm/entrypoints/serve/sagemaker/api_router.py b/vllm/entrypoints/serve/sagemaker/api_router.py index 91b58d2b62..142256c260 100644 --- a/vllm/entrypoints/serve/sagemaker/api_router.py +++ b/vllm/entrypoints/serve/sagemaker/api_router.py @@ -12,8 +12,8 @@ from fastapi.responses import JSONResponse, Response from vllm.config import ModelConfig from vllm.entrypoints.generate.factories import get_generate_invocation_types -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.pooling.factories import get_pooling_invocation_types +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.engine.serving import BaseServing from vllm.entrypoints.serve.instrumentator.basic import base from vllm.entrypoints.serve.instrumentator.health import health diff --git a/vllm/entrypoints/serve/tokenize/api_router.py b/vllm/entrypoints/serve/tokenize/api_router.py index f7a60fe4cf..9cdd82fee3 100644 --- a/vllm/entrypoints/serve/tokenize/api_router.py +++ b/vllm/entrypoints/serve/tokenize/api_router.py @@ -8,7 +8,7 @@ from fastapi import APIRouter, Depends, FastAPI, Request from fastapi.responses import JSONResponse from typing_extensions import assert_never -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.tokenize.protocol import ( DetokenizeRequest, DetokenizeResponse, diff --git a/vllm/entrypoints/serve/tokenize/protocol.py b/vllm/entrypoints/serve/tokenize/protocol.py index e68302d1f9..12d487346f 100644 --- a/vllm/entrypoints/serve/tokenize/protocol.py +++ b/vllm/entrypoints/serve/tokenize/protocol.py @@ -11,12 +11,8 @@ from vllm.entrypoints.chat_utils import ( ChatCompletionMessageParam, ChatTemplateContentFormatOption, ) -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionToolsParam, -) -from vllm.entrypoints.openai.engine.protocol import ( - OpenAIBaseModel, -) +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionToolsParam +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel from vllm.exceptions import VLLMValidationError from vllm.renderers import ChatParams, TokenizeParams, merge_kwargs diff --git a/vllm/entrypoints/serve/tokenize/serving.py b/vllm/entrypoints/serve/tokenize/serving.py index 12072c3f6b..c2232324ce 100644 --- a/vllm/entrypoints/serve/tokenize/serving.py +++ b/vllm/entrypoints/serve/tokenize/serving.py @@ -6,11 +6,11 @@ from typing import Any, Final from fastapi import Request from vllm.entrypoints.chat_utils import ChatTemplateContentFormatOption -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.models.serving import ( OpenAIModelRegistry, OpenAIServingModels, ) +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.engine.serving import BaseServing from vllm.entrypoints.serve.tokenize.protocol import ( DetokenizeRequest, diff --git a/vllm/entrypoints/serve/utils/api_utils.py b/vllm/entrypoints/serve/utils/api_utils.py index 87229a4722..51c94a8e1f 100644 --- a/vllm/entrypoints/serve/utils/api_utils.py +++ b/vllm/entrypoints/serve/utils/api_utils.py @@ -17,7 +17,7 @@ from starlette.background import BackgroundTask, BackgroundTasks from vllm import envs from vllm.engine.arg_utils import EngineArgs -from vllm.entrypoints.openai.engine.protocol import StreamOptions +from vllm.entrypoints.generate.base.protocol import StreamOptions from vllm.entrypoints.openai.models.protocol import LoRAModulePath from vllm.logger import current_formatter_type, init_logger from vllm.platforms import current_platform diff --git a/vllm/entrypoints/speech_to_text/base/serving.py b/vllm/entrypoints/speech_to_text/base/serving.py index b259ec3e5f..e046230a56 100644 --- a/vllm/entrypoints/speech_to_text/base/serving.py +++ b/vllm/entrypoints/speech_to_text/base/serving.py @@ -16,14 +16,13 @@ from transformers import PreTrainedTokenizerBase import vllm.envs as envs from vllm.engine.protocol import EngineClient -from vllm.entrypoints.generate.base.serving import GenerateBaseServing -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, - ErrorResponse, RequestResponseMetadata, - UsageInfo, ) +from vllm.entrypoints.generate.base.serving import GenerateBaseServing from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo from vllm.entrypoints.serve.engine.typing import SpeechToTextRequest from vllm.entrypoints.serve.utils.api_utils import get_max_tokens from vllm.entrypoints.serve.utils.request_logger import RequestLogger diff --git a/vllm/entrypoints/speech_to_text/realtime/connection.py b/vllm/entrypoints/speech_to_text/realtime/connection.py index 15d38509c5..ed8ec7f862 100644 --- a/vllm/entrypoints/speech_to_text/realtime/connection.py +++ b/vllm/entrypoints/speech_to_text/realtime/connection.py @@ -13,7 +13,7 @@ from fastapi import WebSocket from starlette.websockets import WebSocketDisconnect from vllm import envs -from vllm.entrypoints.openai.engine.protocol import ErrorResponse, UsageInfo +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo from vllm.entrypoints.serve.exception_handling.utils import sanitize_message from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger diff --git a/vllm/entrypoints/speech_to_text/realtime/protocol.py b/vllm/entrypoints/speech_to_text/realtime/protocol.py index 25c5cd39d6..bdcd335f6f 100644 --- a/vllm/entrypoints/speech_to_text/realtime/protocol.py +++ b/vllm/entrypoints/speech_to_text/realtime/protocol.py @@ -6,10 +6,7 @@ from typing import Literal from pydantic import Field -from vllm.entrypoints.openai.engine.protocol import ( - OpenAIBaseModel, - UsageInfo, -) +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.utils import random_uuid # Client -> Server Events diff --git a/vllm/entrypoints/speech_to_text/transcription/api_router.py b/vllm/entrypoints/speech_to_text/transcription/api_router.py index f0047e1ec7..cd40112888 100644 --- a/vllm/entrypoints/speech_to_text/transcription/api_router.py +++ b/vllm/entrypoints/speech_to_text/transcription/api_router.py @@ -8,7 +8,6 @@ from typing import Annotated from fastapi import APIRouter, Form, Request from fastapi.responses import JSONResponse, StreamingResponse -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, with_cancellation, @@ -16,6 +15,7 @@ from vllm.entrypoints.serve.utils.api_utils import ( from vllm.entrypoints.speech_to_text.base.utils import read_upload_with_limit from vllm.logger import init_logger +from ...serve.engine.protocol import ErrorResponse from .protocol import TranscriptionRequest, TranscriptionResponseVariant from .serving import OpenAIServingTranscription diff --git a/vllm/entrypoints/speech_to_text/transcription/protocol.py b/vllm/entrypoints/speech_to_text/transcription/protocol.py index bde69a49bd..e9570fb926 100644 --- a/vllm/entrypoints/speech_to_text/transcription/protocol.py +++ b/vllm/entrypoints/speech_to_text/transcription/protocol.py @@ -13,11 +13,8 @@ from pydantic import ( ) from vllm.config.speech_to_text import SpeechToTextParams -from vllm.entrypoints.openai.engine.protocol import ( - DeltaMessage, - OpenAIBaseModel, - UsageInfo, -) +from vllm.entrypoints.generate.base.protocol import DeltaMessage +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger from vllm.sampling_params import ( diff --git a/vllm/entrypoints/speech_to_text/transcription/serving.py b/vllm/entrypoints/speech_to_text/transcription/serving.py index 51898841fa..d8e7e10fa4 100644 --- a/vllm/entrypoints/speech_to_text/transcription/serving.py +++ b/vllm/entrypoints/speech_to_text/transcription/serving.py @@ -5,15 +5,13 @@ from collections.abc import AsyncGenerator from fastapi import Request from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, - RequestResponseMetadata, -) +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata from vllm.entrypoints.openai.models.serving import OpenAIServingModels from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.logger import init_logger from vllm.outputs import RequestOutput +from ...serve.engine.protocol import ErrorResponse from ..base.serving import SpeechToTextBaseServing from .protocol import ( TranscriptionRequest, diff --git a/vllm/entrypoints/speech_to_text/translation/api_router.py b/vllm/entrypoints/speech_to_text/translation/api_router.py index 67cff41b45..54ed868932 100644 --- a/vllm/entrypoints/speech_to_text/translation/api_router.py +++ b/vllm/entrypoints/speech_to_text/translation/api_router.py @@ -8,7 +8,7 @@ from typing import Annotated from fastapi import APIRouter, Form, Request from fastapi.responses import JSONResponse, StreamingResponse -from vllm.entrypoints.openai.engine.protocol import ErrorResponse +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.api_utils import ( load_aware_call, with_cancellation, diff --git a/vllm/entrypoints/speech_to_text/translation/protocol.py b/vllm/entrypoints/speech_to_text/translation/protocol.py index 1a7319e2f1..4e309a091b 100644 --- a/vllm/entrypoints/speech_to_text/translation/protocol.py +++ b/vllm/entrypoints/speech_to_text/translation/protocol.py @@ -12,11 +12,8 @@ from pydantic import ( ) from vllm.config.speech_to_text import SpeechToTextParams -from vllm.entrypoints.openai.engine.protocol import ( - DeltaMessage, - OpenAIBaseModel, - UsageInfo, -) +from vllm.entrypoints.generate.base.protocol import DeltaMessage +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger from vllm.sampling_params import ( diff --git a/vllm/entrypoints/speech_to_text/translation/serving.py b/vllm/entrypoints/speech_to_text/translation/serving.py index 2b7d834a2d..51f78b933f 100644 --- a/vllm/entrypoints/speech_to_text/translation/serving.py +++ b/vllm/entrypoints/speech_to_text/translation/serving.py @@ -5,11 +5,9 @@ from collections.abc import AsyncGenerator from fastapi import Request from vllm.engine.protocol import EngineClient -from vllm.entrypoints.openai.engine.protocol import ( - ErrorResponse, - RequestResponseMetadata, -) +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata from vllm.entrypoints.openai.models.serving import OpenAIServingModels +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.logger import init_logger from vllm.outputs import RequestOutput diff --git a/vllm/exceptions.py b/vllm/exceptions.py index 4383e9a644..0d4f1e7104 100644 --- a/vllm/exceptions.py +++ b/vllm/exceptions.py @@ -3,6 +3,7 @@ """Custom exceptions for vLLM.""" +from http import HTTPStatus from typing import Any @@ -116,3 +117,11 @@ class VLLMUnprocessableEntityError(VLLMClientError): if self.value is not None: extras.append(f"value={self.value}") return f"{base} ({', '.join(extras)})" if extras else base + + +class GenerationError(VLLMServerError): + """raised when finish_reason indicates internal server error (500)""" + + def __init__(self, message: str = "Internal server error"): + super().__init__(message) + self.status_code = HTTPStatus.INTERNAL_SERVER_ERROR diff --git a/vllm/parser/abstract_parser.py b/vllm/parser/abstract_parser.py index 2eda37b432..7aba387d8a 100644 --- a/vllm/parser/abstract_parser.py +++ b/vllm/parser/abstract_parser.py @@ -15,16 +15,16 @@ from vllm.entrypoints.chat_utils import ( get_tool_call_id_type, make_tool_call_id, ) -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionNamedToolChoiceParam, - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, FunctionCall, FunctionDefinition, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionNamedToolChoiceParam, + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.parser.metrics import record_tool_parser_invocation diff --git a/vllm/parser/engine/adapters.py b/vllm/parser/engine/adapters.py index 946367e137..9730b82845 100644 --- a/vllm/parser/engine/adapters.py +++ b/vllm/parser/engine/adapters.py @@ -19,13 +19,13 @@ from vllm.reasoning.abs_reasoning_parsers import ReasoningParser from vllm.tool_parsers.abstract_tool_parser import ToolParser if TYPE_CHECKING: - from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, - ) - from vllm.entrypoints.openai.engine.protocol import ( + from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, ) + from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, + ) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.parser.engine.parser_engine import ParserEngine from vllm.tokenizers import TokenizerLike diff --git a/vllm/parser/engine/parser_engine.py b/vllm/parser/engine/parser_engine.py index 545bec6500..8f6f6ac17b 100644 --- a/vllm/parser/engine/parser_engine.py +++ b/vllm/parser/engine/parser_engine.py @@ -14,7 +14,7 @@ from typing import TYPE_CHECKING import regex as re from vllm.entrypoints.chat_utils import get_tool_call_id_type, make_tool_call_id -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, diff --git a/vllm/parser/gemma4.py b/vllm/parser/gemma4.py index b0e3e83115..da1718332b 100644 --- a/vllm/parser/gemma4.py +++ b/vllm/parser/gemma4.py @@ -17,7 +17,7 @@ import json from collections.abc import Sequence from typing import TYPE_CHECKING -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.logger import init_logger from vllm.parser.engine.events import EventType, SemanticEvent from vllm.parser.engine.parser_engine import ParserEngine diff --git a/vllm/parser/harmony.py b/vllm/parser/harmony.py index e13135293e..8c944733e3 100644 --- a/vllm/parser/harmony.py +++ b/vllm/parser/harmony.py @@ -27,15 +27,15 @@ from xgrammar.structural_tag import ( ) from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, FunctionCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.parser.harmony_utils import ( extract_function_from_recipient, get_streamable_parser_for_assistant, diff --git a/vllm/parser/inkling.py b/vllm/parser/inkling.py index bd21099500..16883b58aa 100644 --- a/vllm/parser/inkling.py +++ b/vllm/parser/inkling.py @@ -29,9 +29,7 @@ import json from collections.abc import Sequence from typing import TYPE_CHECKING -from vllm.entrypoints.openai.engine.protocol import ( - ExtractedToolCallInformation, -) +from vllm.entrypoints.generate.base.protocol import ExtractedToolCallInformation from vllm.parser.engine.events import EventType from vllm.parser.engine.parser_engine import ParserEngine from vllm.parser.engine.parser_engine_config import ( diff --git a/vllm/parser/kimi_k2.py b/vllm/parser/kimi_k2.py index 03a0aa6cec..1e1067a8c2 100644 --- a/vllm/parser/kimi_k2.py +++ b/vllm/parser/kimi_k2.py @@ -21,7 +21,7 @@ from typing import TYPE_CHECKING import regex as re -from vllm.entrypoints.openai.engine.protocol import DeltaFunctionCall, DeltaToolCall +from vllm.entrypoints.generate.base.protocol import DeltaFunctionCall, DeltaToolCall from vllm.parser.engine.events import EventType from vllm.parser.engine.parser_engine import ParserEngine from vllm.parser.engine.parser_engine_config import ( diff --git a/vllm/parser/kimi_k3.py b/vllm/parser/kimi_k3.py index 380e2cce5f..587e1d5ad6 100644 --- a/vllm/parser/kimi_k3.py +++ b/vllm/parser/kimi_k3.py @@ -6,7 +6,7 @@ from __future__ import annotations from collections.abc import Sequence from typing import TYPE_CHECKING -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, FunctionCall, ) diff --git a/vllm/parser/mistral.py b/vllm/parser/mistral.py index edc7018620..fc9b8fbefe 100644 --- a/vllm/parser/mistral.py +++ b/vllm/parser/mistral.py @@ -28,10 +28,7 @@ from mistral_common.protocol.instruct.tool_calls import ( from mistral_common.tokens.tokenizers.base import SpecialTokens from pydantic import Field -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionNamedToolChoiceParam, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -39,6 +36,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionNamedToolChoiceParam, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.parser.engine.events import EventType diff --git a/vllm/parser/nemotron_v3.py b/vllm/parser/nemotron_v3.py index 3cdd8b70d7..c8b75a2c7d 100644 --- a/vllm/parser/nemotron_v3.py +++ b/vllm/parser/nemotron_v3.py @@ -19,10 +19,10 @@ from typing import TYPE_CHECKING from vllm.parser.qwen3 import CHATML_TURN_BOUNDARIES, Qwen3Parser, qwen3_config if TYPE_CHECKING: + from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ) - from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.parser.engine.parser_engine import SemanticEvent from vllm.parser.engine.parser_engine_config import ParserEngineConfig diff --git a/vllm/reasoning/abs_reasoning_parsers.py b/vllm/reasoning/abs_reasoning_parsers.py index 04d6a937b3..2a0d4231f9 100644 --- a/vllm/reasoning/abs_reasoning_parsers.py +++ b/vllm/reasoning/abs_reasoning_parsers.py @@ -15,8 +15,8 @@ from vllm.utils.import_utils import import_from_path if TYPE_CHECKING: from vllm.config import ModelConfig + from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest - from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.tokenizers import TokenizerLike diff --git a/vllm/reasoning/basic_parsers.py b/vllm/reasoning/basic_parsers.py index 938b7f736b..f85ccd010a 100644 --- a/vllm/reasoning/basic_parsers.py +++ b/vllm/reasoning/basic_parsers.py @@ -6,7 +6,7 @@ from collections.abc import Iterable, Sequence from itertools import islice from typing import TYPE_CHECKING -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning.abs_reasoning_parsers import ReasoningParser from vllm.tokenizers import TokenizerLike diff --git a/vllm/reasoning/cohere_command_reasoning_parser.py b/vllm/reasoning/cohere_command_reasoning_parser.py index d2ee958cfa..55beaa6514 100644 --- a/vllm/reasoning/cohere_command_reasoning_parser.py +++ b/vllm/reasoning/cohere_command_reasoning_parser.py @@ -5,7 +5,7 @@ from __future__ import annotations import json from collections.abc import Mapping, Sequence -from typing import Any, NamedTuple, TypedDict, TypeGuard +from typing import TYPE_CHECKING, Any, NamedTuple, TypedDict, TypeGuard import regex as re import xgrammar as xgr @@ -25,20 +25,20 @@ from vllm.entrypoints.cohere.cohere_chat_message import ( CitationSource, CohereDeltaMessage, ) -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( AnyResponseFormat, DeltaFunctionCall, DeltaMessage, DeltaToolCall, ) -from vllm.entrypoints.openai.responses.protocol import ResponsesRequest +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.reasoning import ReasoningParser from vllm.sampling_params import StructuredOutputsParams from vllm.tokenizers import TokenizerLike +if TYPE_CHECKING: + from vllm.entrypoints.openai.responses.protocol import ResponsesRequest + REPLACEMENT_CHAR = "\ufffd" diff --git a/vllm/reasoning/deepseek_r1_reasoning_parser.py b/vllm/reasoning/deepseek_r1_reasoning_parser.py index d24e331bb4..f16f87f6b0 100644 --- a/vllm/reasoning/deepseek_r1_reasoning_parser.py +++ b/vllm/reasoning/deepseek_r1_reasoning_parser.py @@ -3,7 +3,7 @@ from collections.abc import Sequence -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser diff --git a/vllm/reasoning/deepseek_v3_reasoning_parser.py b/vllm/reasoning/deepseek_v3_reasoning_parser.py index dbaf0b1cf8..302024a8e7 100644 --- a/vllm/reasoning/deepseek_v3_reasoning_parser.py +++ b/vllm/reasoning/deepseek_v3_reasoning_parser.py @@ -12,8 +12,8 @@ from vllm.reasoning.deepseek_r1_reasoning_parser import DeepSeekR1ReasoningParse from .identity_reasoning_parser import IdentityReasoningParser if TYPE_CHECKING: + from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest - from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.entrypoints.openai.responses.protocol import ResponsesRequest diff --git a/vllm/reasoning/ernie45_reasoning_parser.py b/vllm/reasoning/ernie45_reasoning_parser.py index 1c868f8b2e..0aa9262819 100644 --- a/vllm/reasoning/ernie45_reasoning_parser.py +++ b/vllm/reasoning/ernie45_reasoning_parser.py @@ -6,7 +6,7 @@ from typing import TYPE_CHECKING from transformers import PreTrainedTokenizerBase -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/gptoss_reasoning_parser.py b/vllm/reasoning/gptoss_reasoning_parser.py index b846768f4f..a6f1080158 100644 --- a/vllm/reasoning/gptoss_reasoning_parser.py +++ b/vllm/reasoning/gptoss_reasoning_parser.py @@ -5,7 +5,7 @@ from typing import TYPE_CHECKING from transformers import PreTrainedTokenizerBase -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning import ReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/granite_reasoning_parser.py b/vllm/reasoning/granite_reasoning_parser.py index c6d63fc361..463659f8d0 100644 --- a/vllm/reasoning/granite_reasoning_parser.py +++ b/vllm/reasoning/granite_reasoning_parser.py @@ -7,7 +7,7 @@ from typing import TYPE_CHECKING import regex as re from transformers import PreTrainedTokenizerBase -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning import ReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/hunyuan_a13b_reasoning_parser.py b/vllm/reasoning/hunyuan_a13b_reasoning_parser.py index 1da1938e72..b15b5608fb 100644 --- a/vllm/reasoning/hunyuan_a13b_reasoning_parser.py +++ b/vllm/reasoning/hunyuan_a13b_reasoning_parser.py @@ -7,7 +7,7 @@ from typing import TYPE_CHECKING import regex as re from transformers import PreTrainedTokenizerBase -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning import ReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/hy_v3_reasoning_parser.py b/vllm/reasoning/hy_v3_reasoning_parser.py index 59631a3340..0765be74af 100644 --- a/vllm/reasoning/hy_v3_reasoning_parser.py +++ b/vllm/reasoning/hy_v3_reasoning_parser.py @@ -2,17 +2,18 @@ # SPDX-FileCopyrightText: Copyright contributors to the vLLM project from collections.abc import Iterable, Sequence +from typing import TYPE_CHECKING -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage -from vllm.entrypoints.openai.responses.protocol import ResponsesRequest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.logger import init_logger from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser from vllm.reasoning.identity_reasoning_parser import IdentityReasoningParser from vllm.tokenizers import TokenizerLike +if TYPE_CHECKING: + from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest + from vllm.entrypoints.openai.responses.protocol import ResponsesRequest + logger = init_logger(__name__) diff --git a/vllm/reasoning/hy_v4_reasoning_parser.py b/vllm/reasoning/hy_v4_reasoning_parser.py index 9fb8df6646..b65db92b92 100644 --- a/vllm/reasoning/hy_v4_reasoning_parser.py +++ b/vllm/reasoning/hy_v4_reasoning_parser.py @@ -4,17 +4,19 @@ from __future__ import annotations from collections.abc import Iterable, Sequence -from typing import TypedDict +from typing import TYPE_CHECKING, TypedDict import regex as re -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import DeltaMessage -from vllm.entrypoints.openai.responses.protocol import ResponsesRequest +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.logger import init_logger from vllm.reasoning import ReasoningParser from vllm.tokenizers import TokenizerLike +if TYPE_CHECKING: + from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest + from vllm.entrypoints.openai.responses.protocol import ResponsesRequest + logger = init_logger(__name__) # Must match the chat template's own default for ``reasoning_effort``. diff --git a/vllm/reasoning/identity_reasoning_parser.py b/vllm/reasoning/identity_reasoning_parser.py index ee35360ea6..52fab99141 100644 --- a/vllm/reasoning/identity_reasoning_parser.py +++ b/vllm/reasoning/identity_reasoning_parser.py @@ -6,7 +6,7 @@ from typing import TYPE_CHECKING from transformers import PreTrainedTokenizerBase -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning import ReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/kimi_k3_reasoning_parser.py b/vllm/reasoning/kimi_k3_reasoning_parser.py index f05d5c0448..d3ae2b3abe 100644 --- a/vllm/reasoning/kimi_k3_reasoning_parser.py +++ b/vllm/reasoning/kimi_k3_reasoning_parser.py @@ -28,7 +28,7 @@ from typing import TYPE_CHECKING import regex as re from transformers import PreTrainedTokenizerBase -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning import ReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/minimax_m2_reasoning_parser.py b/vllm/reasoning/minimax_m2_reasoning_parser.py index 9c3a502e4f..b26ea8889a 100644 --- a/vllm/reasoning/minimax_m2_reasoning_parser.py +++ b/vllm/reasoning/minimax_m2_reasoning_parser.py @@ -4,9 +4,7 @@ from collections.abc import Sequence from typing import TYPE_CHECKING -from vllm.entrypoints.openai.engine.protocol import ( - DeltaMessage, -) +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.parser.engine.registered_adapters import MinimaxM2ParserReasoningAdapter from vllm.reasoning.abs_reasoning_parsers import ReasoningParser from vllm.tokenizers import TokenizerLike diff --git a/vllm/reasoning/minimax_m3_reasoning_parser.py b/vllm/reasoning/minimax_m3_reasoning_parser.py index 52d2851e2a..d49f9311f4 100644 --- a/vllm/reasoning/minimax_m3_reasoning_parser.py +++ b/vllm/reasoning/minimax_m3_reasoning_parser.py @@ -4,7 +4,7 @@ from collections.abc import Iterable, Sequence from typing import TYPE_CHECKING -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/muse_glimmer_reasoning_parser.py b/vllm/reasoning/muse_glimmer_reasoning_parser.py index d3abedca4b..5991eb4d2d 100644 --- a/vllm/reasoning/muse_glimmer_reasoning_parser.py +++ b/vllm/reasoning/muse_glimmer_reasoning_parser.py @@ -19,8 +19,8 @@ from collections.abc import Iterable, Sequence import regex as re +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import DeltaMessage from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.reasoning.abs_reasoning_parsers import ReasoningParser diff --git a/vllm/reasoning/olmo3_reasoning_parser.py b/vllm/reasoning/olmo3_reasoning_parser.py index dd323501df..b658b92bcb 100644 --- a/vllm/reasoning/olmo3_reasoning_parser.py +++ b/vllm/reasoning/olmo3_reasoning_parser.py @@ -8,7 +8,7 @@ from typing import TYPE_CHECKING import regex as re -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning import ReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/step3_reasoning_parser.py b/vllm/reasoning/step3_reasoning_parser.py index bc80003edc..d2a575c74e 100644 --- a/vllm/reasoning/step3_reasoning_parser.py +++ b/vllm/reasoning/step3_reasoning_parser.py @@ -8,7 +8,7 @@ from typing import TYPE_CHECKING import regex as re from transformers import PreTrainedTokenizerBase -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning import ReasoningParser if TYPE_CHECKING: diff --git a/vllm/reasoning/step3p5_reasoning_parser.py b/vllm/reasoning/step3p5_reasoning_parser.py index 23a08cbe50..fed6f2edaa 100644 --- a/vllm/reasoning/step3p5_reasoning_parser.py +++ b/vllm/reasoning/step3p5_reasoning_parser.py @@ -4,7 +4,7 @@ from collections.abc import Iterable, Sequence from typing import TYPE_CHECKING -from vllm.entrypoints.openai.engine.protocol import DeltaMessage +from vllm.entrypoints.generate.base.protocol import DeltaMessage from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser from vllm.tokenizers import TokenizerLike diff --git a/vllm/renderers/online_derenderer.py b/vllm/renderers/online_derenderer.py index a1285d8e17..ca70bb6ace 100644 --- a/vllm/renderers/online_derenderer.py +++ b/vllm/renderers/online_derenderer.py @@ -4,6 +4,7 @@ from typing import Any from vllm.config import ModelConfig from vllm.entrypoints.chat_utils import ChatTemplateContentFormatOption +from vllm.entrypoints.generate.base.protocol import DeltaMessage, ToolCall from vllm.entrypoints.generate.base.serving import resolve_token_id_placeholder from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionLogProbs, @@ -21,12 +22,12 @@ from vllm.entrypoints.openai.completion.protocol import ( CompletionResponseStreamChoice, CompletionStreamResponse, ) -from vllm.entrypoints.openai.engine.protocol import DeltaMessage, ToolCall, UsageInfo from vllm.entrypoints.scale_out.token_in_token_out.protocol import ( DerenderStreamState, GenerateResponse, GenerateStreamResponse, ) +from vllm.entrypoints.serve.engine.protocol import UsageInfo from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.logger import init_logger from vllm.parser import Parser, ParserManager diff --git a/vllm/renderers/online_renderer.py b/vllm/renderers/online_renderer.py index 712869c2bf..db7cc551c8 100644 --- a/vllm/renderers/online_renderer.py +++ b/vllm/renderers/online_renderer.py @@ -18,7 +18,6 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( from vllm.entrypoints.openai.completion.protocol import ( CompletionRequest, ) -from vllm.entrypoints.openai.engine.protocol import ErrorResponse from vllm.entrypoints.openai.parser.harmony_utils import ( build_harmony_preamble, extract_instructions_from_messages, @@ -27,6 +26,7 @@ from vllm.entrypoints.openai.parser.harmony_utils import ( ) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.entrypoints.serve import create_error_response +from vllm.entrypoints.serve.engine.protocol import ErrorResponse from vllm.entrypoints.serve.utils.request_logger import RequestLogger from vllm.inputs import ( EngineInput, diff --git a/vllm/tool_parsers/abstract_tool_parser.py b/vllm/tool_parsers/abstract_tool_parser.py index acb96e28f6..42522d4350 100644 --- a/vllm/tool_parsers/abstract_tool_parser.py +++ b/vllm/tool_parsers/abstract_tool_parser.py @@ -15,14 +15,14 @@ from openai.types.responses import ( from openai.types.responses.function_tool import FunctionTool import vllm.envs as envs +from vllm.entrypoints.generate.base.protocol import ( + DeltaMessage, + ExtractedToolCallInformation, +) from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ChatCompletionToolsParam, ) -from vllm.entrypoints.openai.engine.protocol import ( - DeltaMessage, - ExtractedToolCallInformation, -) from vllm.entrypoints.openai.responses.protocol import ( ResponsesRequest, ) diff --git a/vllm/tool_parsers/apertus_tool_parser.py b/vllm/tool_parsers/apertus_tool_parser.py index cd2ba272f2..f23b8601aa 100644 --- a/vllm/tool_parsers/apertus_tool_parser.py +++ b/vllm/tool_parsers/apertus_tool_parser.py @@ -16,8 +16,7 @@ import regex as re from partial_json_parser.core.options import Allow from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -25,6 +24,7 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/cohere_command_tool_parser.py b/vllm/tool_parsers/cohere_command_tool_parser.py index 558d71ccc5..3739b222e5 100644 --- a/vllm/tool_parsers/cohere_command_tool_parser.py +++ b/vllm/tool_parsers/cohere_command_tool_parser.py @@ -12,10 +12,7 @@ except ImportError as e: " pip install 'cohere-melody>=0.11.1'" ) from e -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -23,6 +20,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ( ResponsesRequest, ) diff --git a/vllm/tool_parsers/deepseekv31_tool_parser.py b/vllm/tool_parsers/deepseekv31_tool_parser.py index 05d3378747..f4c06d467f 100644 --- a/vllm/tool_parsers/deepseekv31_tool_parser.py +++ b/vllm/tool_parsers/deepseekv31_tool_parser.py @@ -6,10 +6,7 @@ from collections.abc import Sequence import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -17,6 +14,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import Tool, ToolParser diff --git a/vllm/tool_parsers/deepseekv3_tool_parser.py b/vllm/tool_parsers/deepseekv3_tool_parser.py index 7eaa983df7..13fbcb5ed2 100644 --- a/vllm/tool_parsers/deepseekv3_tool_parser.py +++ b/vllm/tool_parsers/deepseekv3_tool_parser.py @@ -6,10 +6,7 @@ from collections.abc import Sequence import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -17,6 +14,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import ( diff --git a/vllm/tool_parsers/dots_tool_parser.py b/vllm/tool_parsers/dots_tool_parser.py index 987d891d8a..3e81344739 100644 --- a/vllm/tool_parsers/dots_tool_parser.py +++ b/vllm/tool_parsers/dots_tool_parser.py @@ -8,11 +8,7 @@ from typing import Any import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, - ChatCompletionToolsParam, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -20,6 +16,10 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, + ChatCompletionToolsParam, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import Tool, ToolParser diff --git a/vllm/tool_parsers/ernie45_tool_parser.py b/vllm/tool_parsers/ernie45_tool_parser.py index f22eaca1f8..74624b1404 100644 --- a/vllm/tool_parsers/ernie45_tool_parser.py +++ b/vllm/tool_parsers/ernie45_tool_parser.py @@ -6,10 +6,7 @@ from collections.abc import Sequence import regex as re -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -17,6 +14,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import ( diff --git a/vllm/tool_parsers/functiongemma_tool_parser.py b/vllm/tool_parsers/functiongemma_tool_parser.py index 776792ea1d..a975f68368 100644 --- a/vllm/tool_parsers/functiongemma_tool_parser.py +++ b/vllm/tool_parsers/functiongemma_tool_parser.py @@ -7,10 +7,7 @@ from collections.abc import Sequence import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -18,6 +15,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/gigachat3_tool_parser.py b/vllm/tool_parsers/gigachat3_tool_parser.py index d48ff43eed..020d4c1af7 100644 --- a/vllm/tool_parsers/gigachat3_tool_parser.py +++ b/vllm/tool_parsers/gigachat3_tool_parser.py @@ -7,10 +7,7 @@ from collections.abc import Sequence import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -18,6 +15,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/gptoss_tool_parser.py b/vllm/tool_parsers/gptoss_tool_parser.py index 7321c2f049..e147ff1c74 100644 --- a/vllm/tool_parsers/gptoss_tool_parser.py +++ b/vllm/tool_parsers/gptoss_tool_parser.py @@ -4,7 +4,7 @@ from collections.abc import Sequence from typing import TYPE_CHECKING -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, ) diff --git a/vllm/tool_parsers/granite4_tool_parser.py b/vllm/tool_parsers/granite4_tool_parser.py index b11e9e6d50..913135f13d 100644 --- a/vllm/tool_parsers/granite4_tool_parser.py +++ b/vllm/tool_parsers/granite4_tool_parser.py @@ -8,10 +8,7 @@ from typing import Any, Protocol, TypeVar import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/granite_20b_fc_tool_parser.py b/vllm/tool_parsers/granite_20b_fc_tool_parser.py index 6d217a0305..432f94b61e 100644 --- a/vllm/tool_parsers/granite_20b_fc_tool_parser.py +++ b/vllm/tool_parsers/granite_20b_fc_tool_parser.py @@ -10,10 +10,7 @@ import regex as re from partial_json_parser.core.options import Allow from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -21,6 +18,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import ( diff --git a/vllm/tool_parsers/granite_tool_parser.py b/vllm/tool_parsers/granite_tool_parser.py index 174e288427..c1d852dfc3 100644 --- a/vllm/tool_parsers/granite_tool_parser.py +++ b/vllm/tool_parsers/granite_tool_parser.py @@ -8,10 +8,7 @@ import partial_json_parser from partial_json_parser.core.options import Allow from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import ( diff --git a/vllm/tool_parsers/hermes_tool_parser.py b/vllm/tool_parsers/hermes_tool_parser.py index 3fd819297a..c5b318cd19 100644 --- a/vllm/tool_parsers/hermes_tool_parser.py +++ b/vllm/tool_parsers/hermes_tool_parser.py @@ -7,10 +7,7 @@ from collections.abc import Sequence import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -18,6 +15,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/hunyuan_a13b_tool_parser.py b/vllm/tool_parsers/hunyuan_a13b_tool_parser.py index f5cd9f85a0..88b2a20d3a 100644 --- a/vllm/tool_parsers/hunyuan_a13b_tool_parser.py +++ b/vllm/tool_parsers/hunyuan_a13b_tool_parser.py @@ -8,10 +8,7 @@ from typing import Any import regex as re -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import ( diff --git a/vllm/tool_parsers/hy_v3_tool_parser.py b/vllm/tool_parsers/hy_v3_tool_parser.py index 4af3bbe534..d73473673f 100644 --- a/vllm/tool_parsers/hy_v3_tool_parser.py +++ b/vllm/tool_parsers/hy_v3_tool_parser.py @@ -8,11 +8,7 @@ from typing import Any import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, - ChatCompletionToolsParam, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -20,6 +16,10 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, + ChatCompletionToolsParam, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import ( diff --git a/vllm/tool_parsers/hy_v4_tool_parser.py b/vllm/tool_parsers/hy_v4_tool_parser.py index e89435dfa1..7294631626 100644 --- a/vllm/tool_parsers/hy_v4_tool_parser.py +++ b/vllm/tool_parsers/hy_v4_tool_parser.py @@ -12,8 +12,7 @@ import regex as re import vllm.envs as envs from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -21,6 +20,7 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/internlm2_tool_parser.py b/vllm/tool_parsers/internlm2_tool_parser.py index 7cbffcb1c0..5a99be6afd 100644 --- a/vllm/tool_parsers/internlm2_tool_parser.py +++ b/vllm/tool_parsers/internlm2_tool_parser.py @@ -8,10 +8,7 @@ import partial_json_parser from partial_json_parser.core.options import Allow from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/jamba_tool_parser.py b/vllm/tool_parsers/jamba_tool_parser.py index 193a51faa3..1ba67960b9 100644 --- a/vllm/tool_parsers/jamba_tool_parser.py +++ b/vllm/tool_parsers/jamba_tool_parser.py @@ -9,10 +9,7 @@ import regex as re from partial_json_parser.core.options import Allow from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -20,6 +17,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/kimi_k3_tool_parser.py b/vllm/tool_parsers/kimi_k3_tool_parser.py index 9f688f2270..76c6b0aa65 100644 --- a/vllm/tool_parsers/kimi_k3_tool_parser.py +++ b/vllm/tool_parsers/kimi_k3_tool_parser.py @@ -37,11 +37,7 @@ from collections.abc import Sequence import regex as re from openai.types.responses import ToolChoiceFunction -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionNamedToolChoiceParam, - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -49,6 +45,10 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionNamedToolChoiceParam, + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.exceptions import VLLMValidationError from vllm.logger import init_logger diff --git a/vllm/tool_parsers/lfm2_tool_parser.py b/vllm/tool_parsers/lfm2_tool_parser.py index 3e4c15d994..6f4db492be 100644 --- a/vllm/tool_parsers/lfm2_tool_parser.py +++ b/vllm/tool_parsers/lfm2_tool_parser.py @@ -8,13 +8,13 @@ from collections.abc import Sequence import regex as re import vllm.envs as envs -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/llama4_pythonic_tool_parser.py b/vllm/tool_parsers/llama4_pythonic_tool_parser.py index 1921187e93..18c697f048 100644 --- a/vllm/tool_parsers/llama4_pythonic_tool_parser.py +++ b/vllm/tool_parsers/llama4_pythonic_tool_parser.py @@ -8,13 +8,13 @@ import regex as re from transformers import PreTrainedTokenizerBase import vllm.envs as envs -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tool_parsers.abstract_tool_parser import ( Tool, diff --git a/vllm/tool_parsers/llama_tool_parser.py b/vllm/tool_parsers/llama_tool_parser.py index 624428d992..5ad7b1cbdd 100644 --- a/vllm/tool_parsers/llama_tool_parser.py +++ b/vllm/tool_parsers/llama_tool_parser.py @@ -11,10 +11,7 @@ from transformers import PreTrainedTokenizerBase import vllm.envs as envs from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -22,6 +19,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tool_parsers.abstract_tool_parser import ( Tool, diff --git a/vllm/tool_parsers/minicpm5xml_tool_parser.py b/vllm/tool_parsers/minicpm5xml_tool_parser.py index c41eb7c2de..8b419d36df 100644 --- a/vllm/tool_parsers/minicpm5xml_tool_parser.py +++ b/vllm/tool_parsers/minicpm5xml_tool_parser.py @@ -8,11 +8,7 @@ from typing import Any import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, - ChatCompletionToolsParam, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -20,6 +16,10 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, + ChatCompletionToolsParam, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/muse_glimmer_tool_parser.py b/vllm/tool_parsers/muse_glimmer_tool_parser.py index 3a3842b8a5..623b3540d7 100644 --- a/vllm/tool_parsers/muse_glimmer_tool_parser.py +++ b/vllm/tool_parsers/muse_glimmer_tool_parser.py @@ -42,11 +42,7 @@ from openai.types.responses import ToolChoiceFunction from transformers import PreTrainedTokenizerBase from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionNamedToolChoiceParam, - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -54,6 +50,10 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionNamedToolChoiceParam, + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tool_parsers.abstract_tool_parser import ( diff --git a/vllm/tool_parsers/olmo3_tool_parser.py b/vllm/tool_parsers/olmo3_tool_parser.py index dcbf0a6737..49a8716533 100644 --- a/vllm/tool_parsers/olmo3_tool_parser.py +++ b/vllm/tool_parsers/olmo3_tool_parser.py @@ -8,13 +8,13 @@ import regex as re from transformers import PreTrainedTokenizerBase import vllm.envs as envs -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tool_parsers.abstract_tool_parser import ( Tool, diff --git a/vllm/tool_parsers/phi4mini_tool_parser.py b/vllm/tool_parsers/phi4mini_tool_parser.py index f2fa3ce998..f5b794f0f6 100644 --- a/vllm/tool_parsers/phi4mini_tool_parser.py +++ b/vllm/tool_parsers/phi4mini_tool_parser.py @@ -9,15 +9,15 @@ import regex as re from transformers import PreTrainedTokenizerBase from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tool_parsers.abstract_tool_parser import ( Tool, diff --git a/vllm/tool_parsers/poolside_v1_tool_parser.py b/vllm/tool_parsers/poolside_v1_tool_parser.py index 1265bccb44..693580e85a 100644 --- a/vllm/tool_parsers/poolside_v1_tool_parser.py +++ b/vllm/tool_parsers/poolside_v1_tool_parser.py @@ -21,11 +21,7 @@ from openai.types.responses import ToolChoiceFunction from partial_json_parser.core.options import Allow from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionNamedToolChoiceParam, - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -33,6 +29,10 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionNamedToolChoiceParam, + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ( ResponsesRequest, ) diff --git a/vllm/tool_parsers/pythonic_tool_parser.py b/vllm/tool_parsers/pythonic_tool_parser.py index 540a65024f..cc584d3d7c 100644 --- a/vllm/tool_parsers/pythonic_tool_parser.py +++ b/vllm/tool_parsers/pythonic_tool_parser.py @@ -8,13 +8,13 @@ import regex as re from transformers import PreTrainedTokenizerBase import vllm.envs as envs -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaMessage, ExtractedToolCallInformation, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tool_parsers.abstract_tool_parser import ( Tool, diff --git a/vllm/tool_parsers/rust_tool_parser.py b/vllm/tool_parsers/rust_tool_parser.py index 05f015369f..da85825d4c 100644 --- a/vllm/tool_parsers/rust_tool_parser.py +++ b/vllm/tool_parsers/rust_tool_parser.py @@ -8,11 +8,7 @@ from typing import Any from openai.types.responses.function_tool import FunctionTool from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, - ChatCompletionToolsParam, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -20,6 +16,10 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, + ChatCompletionToolsParam, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/step3_tool_parser.py b/vllm/tool_parsers/step3_tool_parser.py index b955bbf5f3..929e0c19c6 100644 --- a/vllm/tool_parsers/step3_tool_parser.py +++ b/vllm/tool_parsers/step3_tool_parser.py @@ -8,10 +8,7 @@ from typing import Any import regex as re -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.entrypoints.openai.responses.protocol import ResponsesRequest from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike diff --git a/vllm/tool_parsers/step3p5_tool_parser.py b/vllm/tool_parsers/step3p5_tool_parser.py index 8a48e2686e..74fcb56ec4 100644 --- a/vllm/tool_parsers/step3p5_tool_parser.py +++ b/vllm/tool_parsers/step3p5_tool_parser.py @@ -8,10 +8,7 @@ from xml.parsers.expat import ParserCreate import regex as re from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionRequest, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, @@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import ( FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionRequest, +) from vllm.logger import init_logger from vllm.tokenizers import TokenizerLike from vllm.tool_parsers.abstract_tool_parser import Tool, ToolParser diff --git a/vllm/tool_parsers/streaming.py b/vllm/tool_parsers/streaming.py index d318d5b963..70da7f3cc6 100644 --- a/vllm/tool_parsers/streaming.py +++ b/vllm/tool_parsers/streaming.py @@ -9,7 +9,7 @@ import regex as re from partial_json_parser.core.options import Allow from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall, diff --git a/vllm/tool_parsers/utils.py b/vllm/tool_parsers/utils.py index 98ea9cc195..d39c83969f 100644 --- a/vllm/tool_parsers/utils.py +++ b/vllm/tool_parsers/utils.py @@ -19,16 +19,16 @@ from openai.types.responses import ( from openai.types.responses.tool import Tool as ResponsesTool from partial_json_parser.core.options import Allow -from vllm.entrypoints.openai.chat_completion.protocol import ( - ChatCompletionNamedToolChoiceParam, - ChatCompletionToolsParam, -) -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaToolCall, FunctionCall, ToolCall, ) +from vllm.entrypoints.openai.chat_completion.protocol import ( + ChatCompletionNamedToolChoiceParam, + ChatCompletionToolsParam, +) from vllm.logger import init_logger Tool: TypeAlias = ChatCompletionToolsParam | ResponsesTool diff --git a/vllm/tool_parsers/xlam_tool_parser.py b/vllm/tool_parsers/xlam_tool_parser.py index d004e83352..52dc306355 100644 --- a/vllm/tool_parsers/xlam_tool_parser.py +++ b/vllm/tool_parsers/xlam_tool_parser.py @@ -11,7 +11,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import ( ChatCompletionRequest, ) from vllm.entrypoints.chat_utils import make_tool_call_id -from vllm.entrypoints.openai.engine.protocol import ( +from vllm.entrypoints.generate.base.protocol import ( DeltaFunctionCall, DeltaMessage, DeltaToolCall,