[Frontend] Move engine/protocol.py out openai folder (#54492)

Signed-off-by: wang.yuqi <yuqi.wang@daocloud.io> Signed-off-by: wang.yuqi <noooop@126.com> Co-authored-by: Cyrus Leung <cyrus.tl.leung@gmail.com>

wang.yuqi committed Aug 31, 2026 at 18:13 UTC eeb549a74dbf9cd41ff6b4c99ea2f4c6a82a7538
194 files changed +550 -585
.buildkite/test_areas/misc.yaml
+1 -1
@@ -342,7 +342,7 @@ steps:
342 - vllm/entrypoints/chat_utils.py
343 - vllm/entrypoints/mcp/
344 - vllm/entrypoints/openai/chat_completion/protocol.py
345 - - vllm/entrypoints/openai/engine/protocol.py
345 + - vllm/entrypoints/generate/base/protocol.py
346 - vllm/envs.py
347 - vllm/exceptions.py
348 - vllm/inputs/
rust/src/server/src/routes/openai/utils/structured_outputs.rs
+1 -1
@@ -29,7 +29,7 @@ pub struct JsonSchemaFormat {
29 /// that we can support the vLLM-specific `structural_tag` variant.
30 ///
31 /// Original Python definitions:
32 -/// <https://github.com/vllm-project/vllm/blob/f22d6e026/vllm/entrypoints/openai/engine/protocol.py#L116-L157>
32 +/// <https://github.com/vllm-project/vllm/blob/main/vllm/entrypoints/generate/base/protocol.py#L71-L112>
33 #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
34 #[serde(tag = "type", rename_all = "snake_case")]
35 pub enum ResponseFormat {
tests/entrypoints/anthropic/test_anthropic_messages_conversion.py
+6 -7
@@ -32,6 +32,11 @@ from vllm.entrypoints.anthropic.serving import (
32 AnthropicServingMessages,
33 _build_anthropic_usage,
34 )
35 +from vllm.entrypoints.generate.base.protocol import (
36 + DeltaFunctionCall,
37 + DeltaMessage,
38 + DeltaToolCall,
39 +)
40 from vllm.entrypoints.openai.chat_completion.protocol import (
41 ChatCompletionResponse,
42 ChatCompletionResponseChoice,
@@ -39,13 +44,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
44 ChatCompletionStreamResponse,
45 ChatMessage,
46 )
42 -from vllm.entrypoints.openai.engine.protocol import (
43 - DeltaFunctionCall,
44 - DeltaMessage,
45 - DeltaToolCall,
46 - PromptTokenUsageInfo,
47 - UsageInfo,
48 -)
47 +from vllm.entrypoints.serve.engine.protocol import PromptTokenUsageInfo, UsageInfo
48 from vllm.entrypoints.serve.exception_handling.handlers.validation import (
49 validation_exception_handler,
50 )
tests/entrypoints/cohere/test_api_router.py
+1 -1
@@ -33,8 +33,8 @@ from vllm.entrypoints.cohere.protocol import (
33 CohereChatV2Response,
34 )
35 from vllm.entrypoints.cohere.serving import CohereServingChatV2
36 -from vllm.entrypoints.openai.engine.protocol import ErrorInfo, ErrorResponse
36 from vllm.entrypoints.scale_out.token_in_token_out.protocol import GenerateRequest
37 +from vllm.entrypoints.serve.engine.protocol import ErrorInfo, ErrorResponse
38 from vllm.entrypoints.serve.exception_handling.handlers.http import (
39 http_exception_handler,
40 )
tests/entrypoints/generate/generative_scoring/test_generative_scoring.py
+1 -1
@@ -24,9 +24,9 @@ from vllm.entrypoints.generate.generative_scoring.serving import (
24 GenerativeScoringResponse,
25 ServingGenerativeScoring,
26 )
27 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
27 from vllm.entrypoints.openai.models.protocol import BaseModelPath
28 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
29 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
30 from vllm.logprobs import Logprob
31 from vllm.outputs import CompletionOutput, RequestOutput
32 from vllm.tokenizers import get_tokenizer
tests/entrypoints/launchers/test_run_batch.py
+1 -1
@@ -21,7 +21,7 @@ from vllm.entrypoints.launchers.run_batch import (
21 make_transcription_wrapper,
22 upload_data,
23 )
24 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
24 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
25 from vllm.exceptions import VLLMValidationError
26 from vllm.utils.mem_constants import MiB_bytes
27
tests/entrypoints/openai/chat_completion/test_batched_chat_completions.py
+1 -1
@@ -8,13 +8,13 @@ import httpx
8 import pytest
9
10 from tests.utils import RemoteOpenAIServer
11 +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata
12 from vllm.entrypoints.openai.chat_completion.batch_serving import (
13 OpenAIServingChatBatch,
14 )
15 from vllm.entrypoints.openai.chat_completion.protocol import (
16 BatchChatCompletionRequest,
17 )
17 -from vllm.entrypoints.openai.engine.protocol import RequestResponseMetadata
18 from vllm.outputs import CompletionOutput, RequestOutput
19
20 # any model with a chat template defined in tokenizer_config should work here
tests/entrypoints/openai/chat_completion/test_chat_error.py
+1 -2
@@ -13,11 +13,10 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
13 ChatCompletionRequest,
14 )
15 from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat
16 -from vllm.entrypoints.openai.engine.protocol import GenerationError
16 from vllm.entrypoints.openai.models.protocol import BaseModelPath
17 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
18 from vllm.entrypoints.scale_out.render.serving import ServingRender
20 -from vllm.exceptions import VLLMValidationError
19 +from vllm.exceptions import GenerationError, VLLMValidationError
20 from vllm.outputs import CompletionOutput, RequestOutput
21 from vllm.renderers.hf import HfRenderer
22 from vllm.renderers.online_renderer import OnlineRenderer
tests/entrypoints/openai/chat_completion/test_serving_chat.py
+5 -5
@@ -20,6 +20,10 @@ from tests.entrypoints.openai.utils import (
20 from tests.utils import RemoteOpenAIServer
21 from vllm._aiter_ops import is_aiter_found_and_supported
22 from vllm.config import MultiModalConfig
23 +from vllm.entrypoints.generate.base.protocol import (
24 + DeltaMessage,
25 + RequestResponseMetadata,
26 +)
27 from vllm.entrypoints.generate.base.serving import build_per_request_timing_metrics
28 from vllm.entrypoints.openai.chat_completion.protocol import (
29 ChatCompletionRequest,
@@ -31,17 +35,13 @@ from vllm.entrypoints.openai.chat_completion.serving import (
35 _make_completion_tokens_details,
36 _make_prompt_tokens_details,
37 )
34 -from vllm.entrypoints.openai.engine.protocol import (
35 - DeltaMessage,
36 - ErrorResponse,
37 - RequestResponseMetadata,
38 -)
38 from vllm.entrypoints.openai.models.serving import (
39 BaseModelPath,
40 OpenAIModelRegistry,
41 OpenAIServingModels,
42 )
43 from vllm.entrypoints.openai.parser.harmony_utils import get_encoding
44 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
45 from vllm.exceptions import VLLMValidationError
46 from vllm.inputs import TokensPrompt
47 from vllm.multimodal.inputs import PlaceholderRange
tests/entrypoints/openai/completion/test_completion_error.py
+2 -5
@@ -8,16 +8,13 @@ from unittest.mock import AsyncMock, MagicMock
8 import pytest
9
10 from vllm.config.multimodal import MultiModalConfig
11 +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata
12 from vllm.entrypoints.openai.completion.protocol import CompletionRequest
13 from vllm.entrypoints.openai.completion.serving import OpenAIServingCompletion
13 -from vllm.entrypoints.openai.engine.protocol import (
14 - GenerationError,
15 - RequestResponseMetadata,
16 -)
14 from vllm.entrypoints.openai.models.protocol import BaseModelPath
15 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
16 from vllm.entrypoints.scale_out.render.serving import ServingRender
20 -from vllm.exceptions import VLLMValidationError
17 +from vllm.exceptions import GenerationError, VLLMValidationError
18 from vllm.outputs import CompletionOutput, RequestOutput
19 from vllm.renderers.hf import HfRenderer
20 from vllm.renderers.online_renderer import OnlineRenderer
tests/entrypoints/openai/completion/test_lora_resolvers.py
+1 -1
@@ -11,9 +11,9 @@ import pytest
11 from vllm.config.multimodal import MultiModalConfig
12 from vllm.entrypoints.openai.completion.protocol import CompletionRequest
13 from vllm.entrypoints.openai.completion.serving import OpenAIServingCompletion
14 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
14 from vllm.entrypoints.openai.models.protocol import BaseModelPath
15 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
16 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
17 from vllm.lora.request import LoRARequest
18 from vllm.lora.resolver import LoRAResolver, LoRAResolverRegistry
19 from vllm.renderers.hf import HfRenderer
tests/entrypoints/openai/responses/test_errors.py
+2 -1
@@ -7,8 +7,9 @@ from unittest.mock import MagicMock
7 import pytest
8
9 import vllm.envs as envs
10 -from vllm.entrypoints.generate.base.serving import GenerateBaseServing, GenerationError
10 +from vllm.entrypoints.generate.base.serving import GenerateBaseServing
11 from vllm.envs import disable_envs_cache
12 +from vllm.exceptions import GenerationError
13
14
15 @pytest.mark.asyncio
tests/entrypoints/openai/responses/test_parsable_context_unit.py
+1 -1
@@ -11,7 +11,7 @@ from unittest.mock import MagicMock
11
12 import pytest
13
14 -from vllm.entrypoints.openai.engine.protocol import (
14 +from vllm.entrypoints.generate.base.protocol import (
15 DeltaMessage,
16 ExtractedToolCallInformation,
17 FunctionCall,
tests/entrypoints/openai/responses/test_serving_responses.py
+3 -3
@@ -25,14 +25,13 @@ from openai.types.responses.tool import (
25 )
26
27 import vllm.envs as envs
28 -from vllm.entrypoints.mcp.tool_server import ToolServer
29 -from vllm.entrypoints.openai.engine.protocol import (
28 +from vllm.entrypoints.generate.base.protocol import (
29 DeltaFunctionCall,
30 DeltaMessage,
31 DeltaToolCall,
33 - ErrorResponse,
32 RequestResponseMetadata,
33 )
34 +from vllm.entrypoints.mcp.tool_server import ToolServer
35 from vllm.entrypoints.openai.responses.context import ConversationContext, SimpleContext
36 from vllm.entrypoints.openai.responses.protocol import (
37 ResponseCreatedEvent,
@@ -49,6 +48,7 @@ from vllm.entrypoints.openai.responses.serving import (
48 from vllm.entrypoints.openai.responses.streaming_events import (
49 StreamingState,
50 )
51 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
52 from vllm.inputs import tokens_input
53 from vllm.outputs import CompletionOutput, RequestOutput
54 from vllm.parser.harmony import Segment
tests/entrypoints/openai/responses/test_streaming_events.py
+1 -1
@@ -1,7 +1,7 @@
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 -from vllm.entrypoints.openai.engine.protocol import (
4 +from vllm.entrypoints.generate.base.protocol import (
5 DeltaFunctionCall,
6 DeltaMessage,
7 DeltaToolCall,
tests/entrypoints/openai/test_render_parity.py
+1 -1
@@ -26,9 +26,9 @@ from openai.types.shared import Reasoning
26
27 from vllm.config.multimodal import MultiModalConfig
28 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
29 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
29 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
30 from vllm.entrypoints.openai.responses.serving import OpenAIServingResponses
31 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
32 from vllm.inputs import tokens_input
33 from vllm.renderers.online_renderer import OnlineRenderer
34 from vllm.renderers.params import ChatParams
tests/entrypoints/openai/test_tool_choice_content_none.py
+8 -8
@@ -5,6 +5,13 @@ import pytest
5 from openai.types.chat.chat_completion import ChatCompletion as OpenAIChatCompletion
6 from openai.types.chat.chat_completion_chunk import ChatCompletionChunk
7
8 +from vllm.entrypoints.generate.base.protocol import (
9 + DeltaFunctionCall,
10 + DeltaMessage,
11 + DeltaToolCall,
12 + FunctionCall,
13 + ToolCall,
14 +)
15 from vllm.entrypoints.openai.chat_completion.protocol import (
16 ChatCompletionRequest,
17 ChatCompletionResponse,
@@ -13,15 +20,8 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
20 ChatCompletionStreamResponse,
21 ChatMessage,
22 )
16 -from vllm.entrypoints.openai.engine.protocol import (
17 - DeltaFunctionCall,
18 - DeltaMessage,
19 - DeltaToolCall,
20 - FunctionCall,
21 - ToolCall,
22 - UsageInfo,
23 -)
23 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
24 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
25 from vllm.parser.abstract_parser import DelegatingParser
26
27 pytestmark = pytest.mark.skip_global_cleanup
tests/entrypoints/openai/utils.py
+1 -1
@@ -10,7 +10,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
10 ChatCompletionStreamResponse,
11 ChatMessage,
12 )
13 -from vllm.entrypoints.openai.engine.protocol import UsageInfo
13 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
14
15
16 async def accumulate_streaming_response(
tests/entrypoints/scale_out/derender/test_derender_stream.py
+1 -4
@@ -23,6 +23,7 @@ from vllm.entrypoints.scale_out.token_in_token_out.protocol import (
23 GenerateResponseStreamChoice,
24 GenerateStreamResponse,
25 )
26 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo
27
28 MODEL_NAME = "hmellor/tiny-random-LlamaForCausalLM"
29
@@ -40,7 +41,6 @@ def _make_stream_chunk(
41 usage: dict | None = None,
42 ) -> GenerateStreamResponse:
43 """Build a GenerateStreamResponse SSE chunk."""
43 - from vllm.entrypoints.openai.engine.protocol import UsageInfo
44
45 return GenerateStreamResponse(
46 request_id=request_id,
@@ -61,7 +61,6 @@ def _make_usage_chunk(
61 request_id: str = "test-req",
62 ) -> GenerateStreamResponse:
63 """Build a usage only final SSE chunk (empty choices)."""
64 - from vllm.entrypoints.openai.engine.protocol import UsageInfo
64
65 return GenerateStreamResponse(
66 request_id=request_id,
@@ -473,7 +472,6 @@ class TestServingDerenderStreamErrorHandling:
472 @pytest.mark.asyncio
473 @pytest.mark.parametrize("exc", [KeyError("bad byte"), IndexError("oob")])
474 async def test_completion_stream_bad_state_returns_400(self, exc):
476 - from vllm.entrypoints.openai.engine.protocol import ErrorResponse
475 from vllm.entrypoints.scale_out.token_in_token_out.protocol import (
476 DerenderCompletionStreamRequest,
477 )
@@ -492,7 +490,6 @@ class TestServingDerenderStreamErrorHandling:
490 @pytest.mark.asyncio
491 @pytest.mark.parametrize("exc", [KeyError("bad byte"), IndexError("oob")])
492 async def test_chat_stream_bad_state_returns_400(self, exc):
495 - from vllm.entrypoints.openai.engine.protocol import ErrorResponse
493 from vllm.entrypoints.scale_out.token_in_token_out.protocol import (
494 DerenderChatStreamRequest,
495 )
tests/entrypoints/scale_out/token_in_token_out/test_generate_stream.py
+2 -1
@@ -9,7 +9,7 @@ from unittest.mock import AsyncMock, MagicMock
9 import pytest
10
11 from vllm.config.multimodal import MultiModalConfig
12 -from vllm.entrypoints.openai.engine.protocol import GenerationError, StreamOptions
12 +from vllm.entrypoints.generate.base.protocol import StreamOptions
13 from vllm.entrypoints.openai.models.protocol import BaseModelPath
14 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
15 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 (
17 GenerateResponse,
18 )
19 from vllm.entrypoints.scale_out.token_in_token_out.serving import ServingTokens
20 +from vllm.exceptions import GenerationError
21 from vllm.logprobs import Logprob
22 from vllm.outputs import CompletionOutput, RequestOutput
23 from vllm.renderers import renderer_from_config
tests/entrypoints/serve/lora/test_serving_models.py
+1 -3
@@ -9,13 +9,11 @@ import pytest
9 from vllm import PoolingParams
10 from vllm.config import ModelConfig
11 from vllm.engine.protocol import EngineClient
12 -from vllm.entrypoints.openai.engine.protocol import (
13 - ErrorResponse,
14 -)
12 from vllm.entrypoints.openai.models.protocol import BaseModelPath
13 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
14 from vllm.entrypoints.pooling.base.serving import PoolingBaseServing
15 from vllm.entrypoints.pooling.typing import PoolingServeContext
16 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
17 from vllm.entrypoints.serve.lora.protocol import (
18 LoadLoRAAdapterRequest,
19 UnloadLoRAAdapterRequest,
tests/entrypoints/serve/utils/test_api_utils.py
+1 -1
@@ -5,7 +5,7 @@ from argparse import Namespace
5
6 import pytest
7
8 -from vllm.entrypoints.openai.engine.protocol import StreamOptions
8 +from vllm.entrypoints.generate.base.protocol import StreamOptions
9 from vllm.entrypoints.serve.utils import api_utils
10 from vllm.entrypoints.serve.utils.api_utils import (
11 get_max_tokens,
tests/entrypoints/speech_to_text/transcription/test_transcription_inter_chunk_spacing.py
+2 -4
@@ -19,11 +19,9 @@ import pytest
19
20 from vllm.config import ModelConfig
21 from vllm.config.speech_to_text import SpeechToTextConfig
22 -from vllm.entrypoints.openai.engine.protocol import (
23 - ErrorResponse,
24 - RequestResponseMetadata,
25 -)
22 +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata
23 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
24 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
25 from vllm.entrypoints.speech_to_text.base.serving import (
26 SpeechToTextBaseServing,
27 asr_inter_chunk_separator,
tests/parser/engine/replay_harness.py
+1 -1
@@ -13,10 +13,10 @@ import json
13 from collections.abc import Sequence
14 from dataclasses import dataclass, field
15
16 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
17 from vllm.entrypoints.openai.chat_completion.protocol import (
18 ChatCompletionRequest,
19 )
19 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
20
21
22 @dataclass
tests/parser/engine/streaming_helpers.py
+1 -1
@@ -6,7 +6,7 @@ from __future__ import annotations
6
7 from typing import Any
8
9 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
9 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
10
11
12 def _build_token_id_map(parser) -> dict[str, int]:
tests/parser/engine/test_gemma4_streaming_reasoning.py
+1 -1
@@ -14,10 +14,10 @@ from tests.parser.engine.streaming_helpers import (
14 collect_tool_arguments,
15 simulate_tool_streaming,
16 )
17 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
18 from vllm.entrypoints.openai.chat_completion.protocol import (
19 ChatCompletionRequest,
20 )
20 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
21 from vllm.parser.gemma4 import Gemma4Parser
22
23 # ── Special token IDs (arbitrary but consistent) ─────────────────────
tests/parser/engine/test_parser_engine.py
+5 -5
@@ -15,15 +15,15 @@ import pytest
15 import regex as re
16
17 from tests.parser.engine.conftest import make_mock_tokenizer
18 -from vllm.entrypoints.openai.chat_completion.protocol import (
19 - ChatCompletionRequest,
20 - ChatCompletionToolsParam,
21 -)
22 -from vllm.entrypoints.openai.engine.protocol import (
18 +from vllm.entrypoints.generate.base.protocol import (
19 DeltaFunctionCall,
20 DeltaToolCall,
21 FunctionDefinition,
22 )
23 +from vllm.entrypoints.openai.chat_completion.protocol import (
24 + ChatCompletionRequest,
25 + ChatCompletionToolsParam,
26 +)
27 from vllm.parser.abstract_parser import DelegatingParser
28 from vllm.parser.engine.adapters import make_adapters
29 from vllm.parser.engine.events import EventType, SemanticEvent
tests/parser/mistral/test_tool_calls.py
+4 -4
@@ -25,16 +25,16 @@ from mistral_common.protocol.instruct.tool_calls import (
25 )
26 from partial_json_parser.core.options import Allow
27
28 -from vllm.entrypoints.openai.chat_completion.protocol import (
29 - ChatCompletionRequest,
30 -)
31 -from vllm.entrypoints.openai.engine.protocol import (
28 +from vllm.entrypoints.generate.base.protocol import (
29 DeltaFunctionCall,
30 DeltaMessage,
31 DeltaToolCall,
32 ExtractedToolCallInformation,
33 StructuralTagResponseFormat,
34 )
35 +from vllm.entrypoints.openai.chat_completion.protocol import (
36 + ChatCompletionRequest,
37 +)
38 from vllm.parser.engine.events import EventType
39 from vllm.parser.engine.streaming_parser_engine import StreamingParserEngine
40 from vllm.parser.mistral import _DEFAULT_JSON_SCHEMA, MistralParser, mistral_config
tests/parser/test_harmony.py
+1 -1
@@ -15,8 +15,8 @@ from openai_harmony import (
15 from transformers import AutoTokenizer, GenerationConfig
16
17 from vllm.config import StructuredOutputsConfig, VllmConfig
18 +from vllm.entrypoints.generate.base.protocol import FunctionCall
19 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
19 -from vllm.entrypoints.openai.engine.protocol import FunctionCall
20 from vllm.entrypoints.openai.parser.harmony_utils import (
21 get_encoding,
22 )
tests/parser/test_include_reasoning.py
+1 -1
@@ -10,8 +10,8 @@ import json
10
11 import pytest
12
13 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
14 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
14 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
15 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
16 from vllm.parser.abstract_parser import DelegatingParser
17 from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser
tests/parser/test_streaming.py
+1 -1
@@ -6,8 +6,8 @@ from types import SimpleNamespace
6
7 import pytest
8
9 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
10 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
10 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
11 from vllm.parser.abstract_parser import DelegatingParser
12 from vllm.parser.engine.registered_adapters import Qwen3ParserReasoningAdapter
13 from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser
tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/sparse_embeddings_processor.py
+1 -1
@@ -4,7 +4,7 @@
4 from collections.abc import Sequence
5
6 from vllm.config import PoolerConfig, VllmConfig
7 -from vllm.entrypoints.openai.engine.protocol import UsageInfo
7 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
8 from vllm.inputs import PromptType
9 from vllm.outputs import PoolingRequestOutput
10 from vllm.plugins.io_processors.interface import IOProcessor
tests/plugins/bge_m3_sparse_plugin/bge_m3_sparse_processor/types.py
+1 -1
@@ -5,11 +5,11 @@ from typing import Literal, get_args
5
6 from pydantic import BaseModel, Field
7
8 -from vllm.entrypoints.openai.engine.protocol import UsageInfo
8 from vllm.entrypoints.pooling.base.protocol import (
9 CompletionRequestMixin,
10 EmbedRequestMixin,
11 )
12 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
13
14 EmbedTask = Literal[
15 "sparse",
tests/plugins/colbert_query_plugin/colbert_query_processor/query_embedding_processor.py
+1 -1
@@ -4,7 +4,7 @@ from collections.abc import Iterator, Sequence
4 from typing import cast
5
6 from vllm.config import VllmConfig
7 -from vllm.entrypoints.openai.engine.protocol import UsageInfo
7 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
8 from vllm.inputs import PromptType, TokensPrompt
9 from vllm.outputs import PoolingRequestOutput
10 from vllm.plugins.io_processors.interface import IOProcessor
tests/plugins/colbert_query_plugin/colbert_query_processor/types.py
+1 -1
@@ -5,8 +5,8 @@ from typing import Literal, get_args
5
6 from pydantic import BaseModel, Field
7
8 -from vllm.entrypoints.openai.engine.protocol import UsageInfo
8 from vllm.entrypoints.pooling.base.protocol import CompletionRequestMixin
9 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
10
11 InputType = Literal["query", "document"]
12 INPUT_TYPES: tuple[InputType, ...] = get_args(InputType)
tests/reasoning/test_cohere_command_reasoning_parser.py
+4 -4
@@ -12,14 +12,14 @@ from typing import Any
12 import pytest
13 from pydantic import ValidationError
14
15 -from vllm.entrypoints.openai.chat_completion.protocol import (
16 - ChatCompletionRequest,
17 -)
18 -from vllm.entrypoints.openai.engine.protocol import (
15 +from vllm.entrypoints.generate.base.protocol import (
16 JsonSchemaResponseFormat,
17 ResponseFormat,
18 StructuralTagResponseFormat,
19 )
20 +from vllm.entrypoints.openai.chat_completion.protocol import (
21 + ChatCompletionRequest,
22 +)
23 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
24 from vllm.reasoning.cohere_command_reasoning_parser import (
25 CohereCommand3ReasoningParser,
tests/reasoning/test_deepseekv3_reasoning_parser.py
+1 -1
@@ -4,8 +4,8 @@
4 import pytest
5 from transformers import AutoTokenizer
6
7 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
8 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
8 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
9 from vllm.reasoning import ReasoningParserManager
10 from vllm.reasoning.deepseek_r1_reasoning_parser import DeepSeekR1ReasoningParser
11 from vllm.reasoning.deepseek_v3_reasoning_parser import DeepSeekV3ReasoningParser
tests/reasoning/test_kimi_k2_reasoning_parser.py
+1 -1
@@ -5,8 +5,8 @@ from unittest.mock import MagicMock
5
6 import pytest
7
8 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
9 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
9 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
10 from vllm.reasoning.kimi_k2_reasoning_parser import KimiK2ReasoningParser
11 from vllm.tokenizers import get_tokenizer
12
tests/reasoning/test_kimi_k3_reasoning_parser.py
+1 -1
@@ -3,10 +3,10 @@
3
4 import pytest
5
6 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
7 from vllm.entrypoints.openai.chat_completion.protocol import (
8 ChatCompletionRequest,
9 )
9 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
10 from vllm.parser.kimi_k3 import KimiK3Parser
11 from vllm.parser.parser_manager import ParserManager
12 from vllm.reasoning.kimi_k3_reasoning_parser import KimiK3ReasoningParser
tests/reasoning/utils.py
+1 -1
@@ -1,8 +1,8 @@
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
5 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
5 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
6 from vllm.reasoning import ReasoningParser
7 from vllm.utils.mistral import is_mistral_tokenizer
8
tests/tool_parsers/test_dots_tool_parser.py
+1 -1
@@ -7,11 +7,11 @@ from unittest.mock import MagicMock
7
8 import pytest
9
10 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
11 from vllm.entrypoints.openai.chat_completion.protocol import (
12 ChatCompletionRequest,
13 ChatCompletionToolsParam,
14 )
14 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
15 from vllm.tool_parsers import ToolParserManager
16 from vllm.tool_parsers.dots_tool_parser import DotsToolParser
17
tests/tool_parsers/test_ernie45_moe_tool_parser.py
+2 -2
@@ -7,12 +7,12 @@ from collections.abc import Generator
7
8 import pytest
9
10 -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
11 -from vllm.entrypoints.openai.engine.protocol import (
10 +from vllm.entrypoints.generate.base.protocol import (
11 DeltaMessage,
12 FunctionCall,
13 ToolCall,
14 )
15 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
16 from vllm.tokenizers import TokenizerLike, get_tokenizer
17 from vllm.tokenizers.detokenizer_utils import detokenize_incrementally
18 from vllm.tool_parsers.ernie45_tool_parser import Ernie45ToolParser
tests/tool_parsers/test_gigachat3_tool_parser.py
+1 -1
@@ -10,7 +10,7 @@ from tests.tool_parsers.utils import (
10 run_tool_extraction,
11 run_tool_extraction_streaming,
12 )
13 -from vllm.entrypoints.openai.engine.protocol import FunctionCall
13 +from vllm.entrypoints.generate.base.protocol import FunctionCall
14 from vllm.tokenizers import TokenizerLike
15 from vllm.tool_parsers import ToolParser, ToolParserManager
16
tests/tool_parsers/test_glm47_moe_tool_parser.py
+1 -1
@@ -9,12 +9,12 @@ from unittest.mock import Mock
9 import pytest
10 from openai.types.responses import ResponseFunctionToolCall
11
12 +from vllm.entrypoints.generate.base.protocol import FunctionCall
13 from vllm.entrypoints.openai.chat_completion.protocol import (
14 ChatCompletionRequest,
15 ChatCompletionToolsParam,
16 FunctionDefinition,
17 )
17 -from vllm.entrypoints.openai.engine.protocol import FunctionCall
18 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
19 from vllm.entrypoints.openai.responses.utils import build_response_output_items
20 from vllm.tokenizers import get_tokenizer
tests/tool_parsers/test_granite4_tool_parser.py
+2 -2
@@ -7,10 +7,10 @@ from typing import Any
7 import pytest
8 from transformers import AutoTokenizer
9
10 -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
11 -from vllm.entrypoints.openai.engine.protocol import (
10 +from vllm.entrypoints.generate.base.protocol import (
11 DeltaMessage,
12 )
13 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
14 from vllm.tool_parsers.granite4_tool_parser import Granite4ToolParser
15
16 MODEL = "ibm-granite/granite-4.0-h-tiny"
tests/tool_parsers/test_hunyuan_a13b_tool_parser.py
+1 -1
@@ -11,7 +11,7 @@ from tests.tool_parsers.utils import (
11 run_tool_extraction,
12 run_tool_extraction_streaming,
13 )
14 -from vllm.entrypoints.openai.engine.protocol import FunctionCall, ToolCall
14 +from vllm.entrypoints.generate.base.protocol import FunctionCall, ToolCall
15 from vllm.tool_parsers import ToolParser, ToolParserManager
16
17
tests/tool_parsers/test_hy_v3_tool_parser.py
+1 -1
@@ -8,12 +8,12 @@ from unittest.mock import Mock
8
9 import pytest
10
11 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
12 from vllm.entrypoints.openai.chat_completion.protocol import (
13 ChatCompletionRequest,
14 ChatCompletionToolsParam,
15 FunctionDefinition,
16 )
16 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
17 from vllm.tokenizers import get_tokenizer
18 from vllm.tool_parsers.hy_v3_tool_parser import HYV3ToolParser
19
tests/tool_parsers/test_jamba_tool_parser.py
+1 -1
@@ -8,7 +8,7 @@ import partial_json_parser
8 import pytest
9 from partial_json_parser.core.options import Allow
10
11 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage, FunctionCall, ToolCall
11 +from vllm.entrypoints.generate.base.protocol import DeltaMessage, FunctionCall, ToolCall
12 from vllm.tokenizers import TokenizerLike, get_tokenizer
13 from vllm.tokenizers.detokenizer_utils import detokenize_incrementally
14 from vllm.tool_parsers.jamba_tool_parser import JambaToolParser
tests/tool_parsers/test_lfm2_tool_parser.py
+1 -1
@@ -10,7 +10,7 @@ from tests.tool_parsers.utils import (
10 run_tool_extraction,
11 run_tool_extraction_streaming,
12 )
13 -from vllm.entrypoints.openai.engine.protocol import FunctionCall
13 +from vllm.entrypoints.generate.base.protocol import FunctionCall
14 from vllm.tokenizers import TokenizerLike
15 from vllm.tool_parsers import ToolParser, ToolParserManager
16
tests/tool_parsers/test_llama3_json_tool_parser.py
+1 -1
@@ -6,7 +6,7 @@ from unittest.mock import MagicMock, patch
6 import pytest
7 from transformers import AutoTokenizer
8
9 -from vllm.entrypoints.openai.engine.protocol import ExtractedToolCallInformation
9 +from vllm.entrypoints.generate.base.protocol import ExtractedToolCallInformation
10 from vllm.tool_parsers.llama_tool_parser import Llama3JsonToolParser
11
12 LLAMA_MODEL = "meta-llama/Llama-3.2-1B-Instruct"
tests/tool_parsers/test_llama4_pythonic_tool_parser.py
+1 -1
@@ -9,7 +9,7 @@ from tests.tool_parsers.utils import (
9 run_tool_extraction,
10 run_tool_extraction_streaming,
11 )
12 -from vllm.entrypoints.openai.engine.protocol import FunctionCall
12 +from vllm.entrypoints.generate.base.protocol import FunctionCall
13 from vllm.tokenizers import TokenizerLike
14 from vllm.tool_parsers import ToolParser, ToolParserManager
15
tests/tool_parsers/test_minicpm5xml_tool_parser.py
+1 -1
@@ -9,11 +9,11 @@ from unittest.mock import MagicMock
9 import pytest
10
11 from tests.tool_parsers.utils import run_tool_extraction_streaming
12 +from vllm.entrypoints.generate.base.protocol import FunctionCall, ToolCall
13 from vllm.entrypoints.openai.chat_completion.protocol import (
14 ChatCompletionRequest,
15 ChatCompletionToolsParam,
16 )
16 -from vllm.entrypoints.openai.engine.protocol import FunctionCall, ToolCall
17 from vllm.tool_parsers import ToolParser, ToolParserManager
18 from vllm.tool_parsers.minicpm5xml_tool_parser import MiniCPM5XMLToolParser
19
tests/tool_parsers/test_minimax_m3_tool_parser.py
+1 -1
@@ -6,11 +6,11 @@ from typing import Any
6
7 import pytest
8
9 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
10 from vllm.entrypoints.openai.chat_completion.protocol import (
11 ChatCompletionToolsParam,
12 FunctionDefinition,
13 )
13 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
14 from vllm.tool_parsers import ToolParserManager
15 from vllm.tool_parsers.minimax_m3_tool_parser import MinimaxM3ToolParser
16
tests/tool_parsers/test_olmo3_tool_parser.py
+1 -1
@@ -9,7 +9,7 @@ from tests.tool_parsers.utils import (
9 run_tool_extraction,
10 run_tool_extraction_streaming,
11 )
12 -from vllm.entrypoints.openai.engine.protocol import FunctionCall
12 +from vllm.entrypoints.generate.base.protocol import FunctionCall
13 from vllm.tokenizers import TokenizerLike
14 from vllm.tool_parsers import ToolParser, ToolParserManager
15
tests/tool_parsers/test_pythonic_tool_parser.py
+1 -1
@@ -9,7 +9,7 @@ from tests.tool_parsers.utils import (
9 run_tool_extraction,
10 run_tool_extraction_streaming,
11 )
12 -from vllm.entrypoints.openai.engine.protocol import FunctionCall
12 +from vllm.entrypoints.generate.base.protocol import FunctionCall
13 from vllm.tokenizers import TokenizerLike
14 from vllm.tool_parsers import ToolParser, ToolParserManager
15
tests/tool_parsers/test_qwen3coder_tool_parser.py
+5 -5
@@ -9,6 +9,11 @@ import pytest
9 from openai.types.responses.function_tool import FunctionTool
10 from xgrammar import StructuralTag
11
12 +from vllm.entrypoints.generate.base.protocol import (
13 + DeltaMessage,
14 + FunctionCall,
15 + ToolCall,
16 +)
17 from vllm.entrypoints.openai.chat_completion.protocol import (
18 ChatCompletionNamedFunction,
19 ChatCompletionNamedToolChoiceParam,
@@ -16,11 +21,6 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
21 ChatCompletionToolsParam,
22 FunctionDefinition,
23 )
19 -from vllm.entrypoints.openai.engine.protocol import (
20 - DeltaMessage,
21 - FunctionCall,
22 - ToolCall,
23 -)
24 from vllm.parser.abstract_parser import DelegatingParser
25 from vllm.tokenizers import TokenizerLike, get_tokenizer
26 from vllm.tokenizers.detokenizer_utils import detokenize_incrementally
tests/tool_parsers/test_step3p5_tool_parser.py
+5 -5
@@ -6,15 +6,15 @@ from collections.abc import Generator
6
7 import pytest
8
9 -from vllm.entrypoints.openai.chat_completion.protocol import (
10 - ChatCompletionRequest,
11 - ChatCompletionToolsParam,
12 -)
13 -from vllm.entrypoints.openai.engine.protocol import (
9 +from vllm.entrypoints.generate.base.protocol import (
10 DeltaMessage,
11 FunctionCall,
12 ToolCall,
13 )
14 +from vllm.entrypoints.openai.chat_completion.protocol import (
15 + ChatCompletionRequest,
16 + ChatCompletionToolsParam,
17 +)
18 from vllm.tokenizers import TokenizerLike, get_tokenizer
19 from vllm.tokenizers.detokenizer_utils import detokenize_incrementally
20 from vllm.tool_parsers.step3p5_tool_parser import Step3p5ToolParser
tests/tool_parsers/test_xlam_tool_parser.py
+2 -2
@@ -6,12 +6,12 @@ from collections.abc import Generator
6
7 import pytest
8
9 -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
10 -from vllm.entrypoints.openai.engine.protocol import (
9 +from vllm.entrypoints.generate.base.protocol import (
10 DeltaMessage,
11 FunctionCall,
12 ToolCall,
13 )
14 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
15 from vllm.tokenizers import TokenizerLike, get_tokenizer
16 from vllm.tokenizers.detokenizer_utils import detokenize_incrementally
17 from vllm.tool_parsers.xlam_tool_parser import xLAMToolParser
tests/tool_parsers/utils.py
+2 -2
@@ -3,13 +3,13 @@
3
4 from collections.abc import Iterable
5
6 -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
7 -from vllm.entrypoints.openai.engine.protocol import (
6 +from vllm.entrypoints.generate.base.protocol import (
7 DeltaMessage,
8 ExtractedToolCallInformation,
9 FunctionCall,
10 ToolCall,
11 )
12 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
13 from vllm.tokenizers import TokenizerLike
14 from vllm.tool_parsers import ToolParser
15
tests/tool_use/test_kimi_k3_tool_parser.py
+1 -1
@@ -5,10 +5,10 @@ import json
5
6 import pytest
7
8 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
9 from vllm.entrypoints.openai.chat_completion.protocol import (
10 ChatCompletionRequest,
11 )
11 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
12 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
13 from vllm.entrypoints.openai.responses.utils import build_response_output_items
14 from vllm.exceptions import VLLMValidationError
vllm/entrypoints/anthropic/api_router.py
+1 -1
@@ -16,7 +16,7 @@ from vllm.entrypoints.anthropic.protocol import (
16 AnthropicMessagesResponse,
17 )
18 from vllm.entrypoints.anthropic.serving import AnthropicServingMessages
19 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
19 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
20 from vllm.entrypoints.serve.exception_handling.error_response import (
21 create_error_response,
22 )
vllm/entrypoints/anthropic/serving.py
+6 -7
@@ -30,6 +30,11 @@ from vllm.entrypoints.anthropic.protocol import (
30 AnthropicUsage,
31 )
32 from vllm.entrypoints.chat_utils import ChatTemplateContentFormatOption
33 +from vllm.entrypoints.generate.base.protocol import (
34 + JsonSchemaResponseFormat,
35 + ResponseFormat,
36 + StreamOptions,
37 +)
38 from vllm.entrypoints.openai.chat_completion.protocol import (
39 ChatCompletionNamedToolChoiceParam,
40 ChatCompletionRequest,
@@ -38,14 +43,8 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
43 ChatCompletionToolsParam,
44 )
45 from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat
41 -from vllm.entrypoints.openai.engine.protocol import (
42 - ErrorResponse,
43 - JsonSchemaResponseFormat,
44 - ResponseFormat,
45 - StreamOptions,
46 - UsageInfo,
47 -)
46 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
47 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo
48 from vllm.entrypoints.serve.exception_handling.utils import sanitize_message
49 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
50 from vllm.renderers.online_renderer import OnlineRenderer
vllm/entrypoints/cohere/api_router.py
+1 -1
@@ -38,7 +38,7 @@ from fastapi.responses import JSONResponse, Response, StreamingResponse
38 from starlette.middleware.base import BaseHTTPMiddleware
39
40 import vllm.envs as envs
41 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
41 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
42 from vllm.entrypoints.serve.exception_handling.utils import sanitize_message
43 from vllm.entrypoints.serve.utils.api_utils import (
44 load_aware_call,
vllm/entrypoints/cohere/cohere_chat_message.py
+2 -4
@@ -29,11 +29,9 @@ from typing import Any, Literal
29
30 from pydantic import Field, model_serializer
31
32 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
33 from vllm.entrypoints.openai.chat_completion.protocol import ChatMessage
33 -from vllm.entrypoints.openai.engine.protocol import (
34 - DeltaMessage,
35 - OpenAIBaseModel,
36 -)
34 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel
35
36
37 class CitationSource(OpenAIBaseModel):
vllm/entrypoints/cohere/serving.py
+6 -7
@@ -71,6 +71,11 @@ from vllm.entrypoints.cohere.protocol import (
71 ToolCallStartEvent,
72 ToolPlanDeltaEvent,
73 )
74 +from vllm.entrypoints.generate.base.protocol import (
75 + JsonSchemaResponseFormat,
76 + ResponseFormat,
77 + StreamOptions,
78 +)
79 from vllm.entrypoints.openai.chat_completion.protocol import (
80 ChatCompletionRequest,
81 ChatCompletionResponse,
@@ -79,13 +84,8 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
84 ChatMessage,
85 )
86 from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat
82 -from vllm.entrypoints.openai.engine.protocol import (
83 - ErrorResponse,
84 - JsonSchemaResponseFormat,
85 - ResponseFormat,
86 - StreamOptions,
87 -)
87 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
88 +from vllm.entrypoints.serve.engine.protocol import ErrorInfo, ErrorResponse
89 from vllm.entrypoints.serve.exception_handling.utils import sanitize_message
90 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
91 from vllm.parser.abstract_parser import Parser
@@ -1761,7 +1761,6 @@ class CohereServingChatV2(OpenAIServingChat):
1761 # so the router can translate the envelope uniformly. ``param``
1762 # is accepted for signature parity with the base class but is
1763 # not surfaced in the Cohere wire format.
1764 - from vllm.entrypoints.openai.engine.protocol import ErrorInfo
1764
1765 del param # unused; kept for signature compatibility
1766 return ErrorResponse(
vllm/entrypoints/generate/base/protocol.py renamed
+3 -110
@@ -4,9 +4,7 @@
4 # Adapted from
5 # https://github.com/lm-sys/FastChat/blob/168ccc29d3f7edc50823016105c024fe2282732a/fastchat/protocol/openai_api_protocol.py
6 import json
7 -import time
8 -from http import HTTPStatus
9 -from typing import Annotated, Any, ClassVar, Literal, TypeAlias
7 +from typing import Annotated, Any, Literal, TypeAlias
8
9 import regex as re
10 from pydantic import (
@@ -14,16 +12,15 @@ from pydantic import (
12 ConfigDict,
13 Field,
14 model_serializer,
17 - model_validator,
15 )
16
17 import vllm.envs as envs
18 from vllm.config.utils import replace
19 from vllm.entrypoints.chat_utils import make_tool_call_id
23 -from vllm.exceptions import VLLMServerError, VLLMValidationError
20 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
21 +from vllm.exceptions import VLLMValidationError
22 from vllm.logger import init_logger
23 from vllm.sampling_params import StructuredOutputsParams
26 -from vllm.utils import random_uuid
24 from vllm.utils.import_utils import resolve_obj_by_qualname
25
26 logger = init_logger(__name__)
@@ -33,102 +30,6 @@ StopParam: TypeAlias = (
30 )
31
32
36 -class OpenAIBaseModel(BaseModel):
37 - # OpenAI API does allow extra fields
38 - model_config = ConfigDict(extra="allow")
39 -
40 - # Cache class field names
41 - field_names: ClassVar[set[str] | None] = None
42 -
43 - @model_validator(mode="wrap")
44 - @classmethod
45 - def __log_extra_fields__(cls, data, handler):
46 - result = handler(data)
47 - if not isinstance(data, dict):
48 - return result
49 - field_names = cls.field_names
50 - if field_names is None:
51 - # Get all class field names and their potential aliases
52 - field_names = set()
53 - for field_name, field in cls.model_fields.items():
54 - field_names.add(field_name)
55 - if alias := getattr(field, "alias", None):
56 - field_names.add(alias)
57 - cls.field_names = field_names
58 -
59 - # Compare against both field names and aliases
60 - if any(k not in field_names for k in data):
61 - logger.debug(
62 - "The following fields were present in the request but ignored: %s",
63 - data.keys() - field_names,
64 - )
65 - return result
66 -
67 -
68 -class ErrorInfo(OpenAIBaseModel):
69 - message: str
70 - type: str
71 - param: str | None = None
72 - code: int
73 -
74 -
75 -class ErrorResponse(OpenAIBaseModel):
76 - error: ErrorInfo
77 -
78 -
79 -class ModelPermission(OpenAIBaseModel):
80 - id: str = Field(default_factory=lambda: f"modelperm-{random_uuid()}")
81 - object: str = "model_permission"
82 - created: int = Field(default_factory=lambda: int(time.time()))
83 - allow_create_engine: bool = False
84 - allow_sampling: bool = True
85 - allow_logprobs: bool = True
86 - allow_search_indices: bool = False
87 - allow_view: bool = True
88 - allow_fine_tuning: bool = False
89 - organization: str = "*"
90 - group: str | None = None
91 - is_blocking: bool = False
92 -
93 -
94 -class ModelCard(OpenAIBaseModel):
95 - id: str
96 - object: str = "model"
97 - created: int = Field(default_factory=lambda: int(time.time()))
98 - owned_by: str = "vllm"
99 - root: str | None = None
100 - parent: str | None = None
101 - max_model_len: int | None = None
102 - permission: list[ModelPermission] = Field(default_factory=list)
103 -
104 -
105 -class ModelList(OpenAIBaseModel):
106 - object: str = "list"
107 - data: list[ModelCard] = Field(default_factory=list)
108 -
109 -
110 -class PromptTokenUsageInfo(OpenAIBaseModel):
111 - cached_tokens: int | None = None
112 - created_cache_tokens: int | None = None
113 - multimodal_tokens: dict[str, int] | None = None
114 - """Prompt tokens contributed by each input modality, keyed by modality name
115 - (e.g. `image`, `audio`, `video`). A breakdown of the multimodal
116 - placeholder tokens already counted in `prompt_tokens`; `None` when the
117 - request has no multimodal input."""
118 -
119 -
120 -class CompletionTokenUsageInfo(OpenAIBaseModel):
121 - reasoning_tokens: int = 0
122 -
123 -
124 -class UsageInfo(OpenAIBaseModel):
125 - prompt_tokens: int = 0
126 - total_tokens: int = 0
127 - completion_tokens: int | None = 0
128 - prompt_tokens_details: PromptTokenUsageInfo | None = None
129 - completion_tokens_details: CompletionTokenUsageInfo | None = None
130 -
131 -
33 class SpeculativeDecodingMetrics(OpenAIBaseModel):
34 """Per-request speculative-decoding acceptance metrics.
35
@@ -437,11 +338,3 @@ class DeltaMessage(OpenAIBaseModel):
338 if len(data.get("tool_calls", [])) == 0:
339 data.pop("tool_calls", None)
340 return data
440 -
441 -
442 -class GenerationError(VLLMServerError):
443 - """raised when finish_reason indicates internal server error (500)"""
444 -
445 - def __init__(self, message: str = "Internal server error"):
446 - super().__init__(message)
447 - self.status_code = HTTPStatus.INTERNAL_SERVER_ERROR
vllm/entrypoints/generate/base/serving.py
+8 -10
@@ -5,27 +5,28 @@ import time
5 from collections.abc import Awaitable, Mapping
6 from dataclasses import dataclass, field
7 from http import HTTPStatus
8 -from typing import TYPE_CHECKING, ClassVar, Generic, TypeVar
8 +from typing import ClassVar, Generic, TypeVar
9
10 from fastapi import Request
11 from pydantic import ConfigDict
12 from starlette.datastructures import Headers
13
14 +from vllm import RequestOutput
15 from vllm.engine.protocol import EngineClient
15 -from vllm.entrypoints.generate.beam_search.online import BeamSearchOnlineMixin
16 -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
17 -from vllm.entrypoints.openai.completion.protocol import CompletionRequest
18 -from vllm.entrypoints.openai.engine.protocol import (
19 - ErrorResponse,
20 - GenerationError,
16 +from vllm.entrypoints.generate.base.protocol import (
17 PerRequestMetrics,
18 SpeculativeDecodingMetrics,
19 )
20 +from vllm.entrypoints.generate.beam_search.online import BeamSearchOnlineMixin
21 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
22 +from vllm.entrypoints.openai.completion.protocol import CompletionRequest
23 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
24 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
25 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
26 from vllm.entrypoints.serve.engine.serving import BaseServing
27 from vllm.entrypoints.serve.engine.typing import AnyRequest
28 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
29 +from vllm.exceptions import GenerationError
30 from vllm.inputs import EngineInput
31 from vllm.logger import init_logger
32 from vllm.logprobs import Logprob, PromptLogprobs
@@ -38,9 +39,6 @@ from vllm.tracing import (
39 )
40 from vllm.v1.metrics.stats import RequestStateStats
41
41 -if TYPE_CHECKING:
42 - from vllm.outputs import RequestOutput
43 -
42 logger = init_logger(__name__)
43
44 RequestT = TypeVar("RequestT", bound=AnyRequest)
vllm/entrypoints/generate/generative_scoring/api_router.py
+1 -1
@@ -9,7 +9,7 @@ from vllm.entrypoints.generate.generative_scoring.serving import (
9 GenerativeScoringResponse,
10 ServingGenerativeScoring,
11 )
12 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
12 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
13 from vllm.entrypoints.serve.utils.api_utils import (
14 load_aware_call,
15 validate_json_request,
vllm/entrypoints/generate/generative_scoring/serving.py
+2 -2
@@ -18,12 +18,12 @@ from fastapi import Request
18 from pydantic import Field
19
20 from vllm.engine.protocol import EngineClient
21 -from vllm.entrypoints.openai.engine.protocol import (
21 +from vllm.entrypoints.openai.models.serving import OpenAIServingModels
22 +from vllm.entrypoints.serve.engine.protocol import (
23 ErrorResponse,
24 OpenAIBaseModel,
25 UsageInfo,
26 )
26 -from vllm.entrypoints.openai.models.serving import OpenAIServingModels
27 from vllm.entrypoints.serve.engine.serving import BaseServing
28 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
29 from vllm.inputs import EngineInput, tokens_input
vllm/entrypoints/launchers/run_batch.py
+5 -5
@@ -35,11 +35,6 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
35 ChatCompletionRequest,
36 ChatCompletionResponse,
37 )
38 -from vllm.entrypoints.openai.engine.protocol import (
39 - ErrorInfo,
40 - ErrorResponse,
41 - OpenAIBaseModel,
42 -)
38 from vllm.entrypoints.pooling.embed.protocol import (
39 EmbeddingRequest,
40 EmbeddingResponse,
@@ -51,6 +46,11 @@ from vllm.entrypoints.pooling.scoring.protocol import (
46 ScoreResponse,
47 )
48 from vllm.entrypoints.serve import create_error_response
49 +from vllm.entrypoints.serve.engine.protocol import (
50 + ErrorInfo,
51 + ErrorResponse,
52 + OpenAIBaseModel,
53 +)
54 from vllm.entrypoints.speech_to_text.transcription.protocol import (
55 TranscriptionRequest,
56 TranscriptionResponse,
vllm/entrypoints/openai/chat_completion/api_router.py
+1 -1
@@ -14,8 +14,8 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
14 ChatCompletionResponse,
15 )
16 from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat
17 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
17 from vllm.entrypoints.openai.sse_keep_alive import with_sse_keep_alive
18 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
19 from vllm.entrypoints.serve.utils.api_utils import (
20 load_aware_call,
21 validate_json_request,
vllm/entrypoints/openai/chat_completion/batch_serving.py
+2 -5
@@ -9,6 +9,7 @@ from http import HTTPStatus
9 from fastapi import Request
10
11 from vllm.entrypoints.chat_utils import ConversationMessage
12 +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata
13 from vllm.entrypoints.openai.chat_completion.protocol import (
14 BatchChatCompletionRequest,
15 ChatCompletionResponse,
@@ -16,11 +17,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
17 ChatMessage,
18 )
19 from vllm.entrypoints.openai.chat_completion.serving import OpenAIServingChat
19 -from vllm.entrypoints.openai.engine.protocol import (
20 - ErrorResponse,
21 - RequestResponseMetadata,
22 - UsageInfo,
23 -)
20 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo
21 from vllm.entrypoints.serve.utils.api_utils import get_max_tokens
22 from vllm.inputs import EngineInput
23 from vllm.logger import init_logger
vllm/entrypoints/openai/chat_completion/protocol.py
+2 -3
@@ -23,21 +23,20 @@ from vllm.entrypoints.chat_utils import (
23 ChatCompletionMessageParam,
24 ChatTemplateContentFormatOption,
25 )
26 -from vllm.entrypoints.openai.engine.protocol import (
26 +from vllm.entrypoints.generate.base.protocol import (
27 AnyResponseFormat,
28 DeltaMessage,
29 FunctionCall,
30 FunctionDefinition,
31 - OpenAIBaseModel,
31 PerRequestMetrics,
32 StopParam,
33 StreamOptions,
34 ToolCall,
36 - UsageInfo,
35 structured_outputs_from_response_format,
36 validate_structural_tag_response_format,
37 validate_structured_outputs_structural_tag,
38 )
39 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
40 from vllm.exceptions import VLLMValidationError
41 from vllm.logger import init_logger
42 from vllm.logprobs import Logprob
vllm/entrypoints/openai/chat_completion/serving.py
+10 -8
@@ -16,9 +16,15 @@ from vllm.entrypoints.chat_utils import (
16 ConversationMessage,
17 make_tool_call_id,
18 )
19 +from vllm.entrypoints.generate.base.protocol import (
20 + DeltaMessage,
21 + FunctionCall,
22 + PerRequestMetrics,
23 + RequestResponseMetadata,
24 + ToolCall,
25 +)
26 from vllm.entrypoints.generate.base.serving import (
27 GenerateBaseServing,
21 - GenerationError,
28 build_per_request_timing_metrics,
29 build_spec_decoding_metrics,
30 clamp_prompt_logprobs,
@@ -36,23 +42,19 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
42 ChatCompletionStreamResponse,
43 ChatMessage,
44 )
39 -from vllm.entrypoints.openai.engine.protocol import (
45 +from vllm.entrypoints.openai.models.serving import OpenAIServingModels
46 +from vllm.entrypoints.serve.engine.protocol import (
47 CompletionTokenUsageInfo,
41 - DeltaMessage,
48 ErrorResponse,
43 - FunctionCall,
44 - PerRequestMetrics,
49 PromptTokenUsageInfo,
46 - RequestResponseMetadata,
47 - ToolCall,
50 UsageInfo,
51 )
50 -from vllm.entrypoints.openai.models.serving import OpenAIServingModels
52 from vllm.entrypoints.serve.utils.api_utils import get_max_tokens, should_include_usage
53 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
54 from vllm.entrypoints.serve.utils.tool_calls_utils import (
55 maybe_filter_parallel_tool_calls,
56 )
57 +from vllm.exceptions import GenerationError
58 from vllm.inputs import EngineInput, MultiModalPlaceholders
59 from vllm.logger import init_logger
60 from vllm.logprobs import Logprob
vllm/entrypoints/openai/completion/api_router.py
+1 -1
@@ -12,8 +12,8 @@ from vllm.entrypoints.openai.completion.protocol import (
12 CompletionResponse,
13 )
14 from vllm.entrypoints.openai.completion.serving import OpenAIServingCompletion
15 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
15 from vllm.entrypoints.openai.sse_keep_alive import with_sse_keep_alive
16 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
17 from vllm.entrypoints.serve.utils.api_utils import (
18 load_aware_call,
19 validate_json_request,
vllm/entrypoints/openai/completion/protocol.py
+2 -3
@@ -10,17 +10,16 @@ from pydantic import Field, model_validator
10
11 import vllm.envs as envs
12 from vllm.config import ModelConfig
13 -from vllm.entrypoints.openai.engine.protocol import (
13 +from vllm.entrypoints.generate.base.protocol import (
14 AnyResponseFormat,
15 - OpenAIBaseModel,
15 PerRequestMetrics,
16 StopParam,
17 StreamOptions,
19 - UsageInfo,
18 structured_outputs_from_response_format,
19 validate_structural_tag_response_format,
20 validate_structured_outputs_structural_tag,
21 )
22 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
23 from vllm.exceptions import VLLMValidationError
24 from vllm.logger import init_logger
25 from vllm.logprobs import Logprob
vllm/entrypoints/openai/completion/serving.py
+7 -6
@@ -10,9 +10,12 @@ from typing import cast
10 from fastapi import Request
11
12 from vllm.engine.protocol import EngineClient
13 +from vllm.entrypoints.generate.base.protocol import (
14 + PerRequestMetrics,
15 + RequestResponseMetadata,
16 +)
17 from vllm.entrypoints.generate.base.serving import (
18 GenerateBaseServing,
15 - GenerationError,
19 build_per_request_timing_metrics,
20 build_spec_decoding_metrics,
21 clamp_prompt_logprobs,
@@ -26,17 +29,15 @@ from vllm.entrypoints.openai.completion.protocol import (
29 CompletionResponseStreamChoice,
30 CompletionStreamResponse,
31 )
29 -from vllm.entrypoints.openai.engine.protocol import (
32 +from vllm.entrypoints.openai.models.serving import OpenAIServingModels
33 +from vllm.entrypoints.serve.engine.protocol import (
34 ErrorResponse,
31 - PerRequestMetrics,
35 PromptTokenUsageInfo,
33 - RequestResponseMetadata,
36 UsageInfo,
37 )
36 -from vllm.entrypoints.openai.models.serving import OpenAIServingModels
38 from vllm.entrypoints.serve.utils.api_utils import get_max_tokens, should_include_usage
39 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
39 -from vllm.exceptions import VLLMValidationError
40 +from vllm.exceptions import GenerationError, VLLMValidationError
41 from vllm.inputs import EngineInput
42 from vllm.logger import init_logger
43 from vllm.logprobs import Logprob
vllm/entrypoints/openai/engine/__init__.py deleted
-2
@@ -1,2 +0,0 @@
1 -# SPDX-License-Identifier: Apache-2.0
2 -# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
vllm/entrypoints/openai/models/serving.py
+3 -3
@@ -7,14 +7,14 @@ from http import HTTPStatus
7
8 from vllm.config import ModelConfig
9 from vllm.engine.protocol import EngineClient
10 -from vllm.entrypoints.openai.engine.protocol import (
10 +from vllm.entrypoints.openai.models.protocol import BaseModelPath, LoRAModulePath
11 +from vllm.entrypoints.serve import create_error_response
12 +from vllm.entrypoints.serve.engine.protocol import (
13 ErrorResponse,
14 ModelCard,
15 ModelList,
16 ModelPermission,
17 )
16 -from vllm.entrypoints.openai.models.protocol import BaseModelPath, LoRAModulePath
17 -from vllm.entrypoints.serve import create_error_response
18 from vllm.entrypoints.serve.lora.protocol import (
19 LoadLoRAAdapterRequest,
20 UnloadLoRAAdapterRequest,
vllm/entrypoints/openai/responses/api_router.py
+1 -1
@@ -8,13 +8,13 @@ from http import HTTPStatus
8 from fastapi import APIRouter, Depends, FastAPI, Request
9 from fastapi.responses import JSONResponse, StreamingResponse
10
11 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
11 from vllm.entrypoints.openai.responses.protocol import (
12 ResponsesRequest,
13 ResponsesResponse,
14 StreamingResponsesResponse,
15 )
16 from vllm.entrypoints.openai.responses.serving import OpenAIServingResponses
17 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
18 from vllm.entrypoints.serve.utils.api_utils import (
19 load_aware_call,
20 validate_json_request,
vllm/entrypoints/openai/responses/context.py
+1 -3
@@ -24,11 +24,9 @@ from vllm import envs
24 from vllm.entrypoints.chat_utils import (
25 ChatTemplateContentFormatOption,
26 )
27 +from vllm.entrypoints.generate.base.protocol import FunctionCall
28 from vllm.entrypoints.mcp.tool import Tool
29 from vllm.entrypoints.mcp.tool_server import ToolServer
29 -from vllm.entrypoints.openai.engine.protocol import (
30 - FunctionCall,
31 -)
30 from vllm.entrypoints.openai.parser.harmony_utils import render_for_completion
31 from vllm.entrypoints.openai.responses.protocol import (
32 ResponseInputOutputItem,
vllm/entrypoints/openai/responses/protocol.py
+2 -1
@@ -60,7 +60,8 @@ from vllm.entrypoints.chat_utils import (
60 ChatCompletionMessageParam,
61 ChatTemplateContentFormatOption,
62 )
63 -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, StopParam
63 +from vllm.entrypoints.generate.base.protocol import StopParam
64 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel
65 from vllm.exceptions import VLLMValidationError
66 from vllm.logger import init_logger
67 from vllm.renderers import ChatParams, TokenizeParams, merge_kwargs
vllm/entrypoints/openai/responses/serving.py
+5 -8
@@ -31,16 +31,12 @@ from vllm.entrypoints.chat_utils import (
31 ChatCompletionMessageParam,
32 ChatTemplateContentFormatOption,
33 )
34 -from vllm.entrypoints.generate.base.serving import (
35 - GenerateBaseServing,
36 - GenerationError,
37 -)
38 -from vllm.entrypoints.mcp.tool_server import ToolServer
39 -from vllm.entrypoints.openai.engine.protocol import (
34 +from vllm.entrypoints.generate.base.protocol import (
35 DeltaMessage,
41 - ErrorResponse,
36 RequestResponseMetadata,
37 )
38 +from vllm.entrypoints.generate.base.serving import GenerateBaseServing
39 +from vllm.entrypoints.mcp.tool_server import ToolServer
40 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
41 from vllm.entrypoints.openai.parser.harmony_utils import (
42 build_harmony_preamble,
@@ -89,9 +85,10 @@ from vllm.entrypoints.openai.responses.utils import (
85 extract_function_tool_names,
86 extract_tool_types,
87 )
88 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
89 from vllm.entrypoints.serve.utils.api_utils import get_max_tokens
90 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
94 -from vllm.exceptions import VLLMValidationError
91 +from vllm.exceptions import GenerationError, VLLMValidationError
92 from vllm.inputs import EngineInput, tokens_input
93 from vllm.logger import init_logger
94 from vllm.logprobs import Logprob as SampleLogprob
vllm/entrypoints/openai/responses/streaming_events.py
+1 -1
@@ -61,8 +61,8 @@ from openai.types.responses.response_reasoning_item import (
61 from openai.types.responses.tool import Tool
62 from openai_harmony import Message as HarmonyMessage
63
64 +from vllm.entrypoints.generate.base.protocol import DeltaMessage, DeltaToolCall
65 from vllm.entrypoints.mcp.tool_server import ToolServer
65 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage, DeltaToolCall
66 from vllm.entrypoints.openai.parser.harmony_utils import (
67 extract_function_from_recipient,
68 is_function_recipient,
vllm/entrypoints/openai/responses/utils.py
+1 -1
@@ -31,11 +31,11 @@ from openai.types.responses.tool import Tool
31
32 from vllm import envs
33 from vllm.entrypoints.chat_utils import make_tool_call_id
34 +from vllm.entrypoints.generate.base.protocol import FunctionCall, FunctionDefinition
35 from vllm.entrypoints.openai.chat_completion.protocol import (
36 ChatCompletionMessageParam,
37 ChatCompletionToolsParam,
38 )
38 -from vllm.entrypoints.openai.engine.protocol import FunctionCall, FunctionDefinition
39 from vllm.entrypoints.openai.responses.protocol import ResponseInputOutputItem
40 from vllm.logger import init_logger
41 from vllm.tool_parsers.utils import (
vllm/entrypoints/pooling/base/protocol.py
+1 -1
@@ -11,7 +11,7 @@ from vllm.entrypoints.chat_utils import (
11 ChatCompletionMessageParam,
12 ChatTemplateContentFormatOption,
13 )
14 -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel
14 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel
15 from vllm.exceptions import VLLMValidationError
16 from vllm.renderers import ChatParams, TokenizeParams, merge_kwargs
17 from vllm.tasks import check_removed_pooling_task
vllm/entrypoints/pooling/base/serving.py
+1 -1
@@ -16,7 +16,6 @@ from vllm import PoolingRequestOutput, envs
16 from vllm.config import VllmConfig
17 from vllm.engine.protocol import EngineClient
18 from vllm.entrypoints.chat_utils import ChatTemplateConfig
19 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
19 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
20 from vllm.entrypoints.serve.engine.serving import BaseServing
21 from vllm.entrypoints.serve.engine.typing import AnyRequest
@@ -30,6 +29,7 @@ from vllm.tracing import (
29 )
30 from vllm.utils.async_utils import make_async, merge_async_iterators
31
32 +from ...serve.engine.protocol import ErrorResponse
33 from ..typing import AnyPoolingRequest, PoolingServeContext
34 from .io_processor import PoolingIOProcessor
35
vllm/entrypoints/pooling/classify/protocol.py
+1 -1
@@ -7,7 +7,7 @@ from typing import Annotated, TypeAlias
7 from pydantic import BeforeValidator, Field
8
9 from vllm import PoolingParams
10 -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, UsageInfo
10 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
11 from vllm.logger import init_logger
12 from vllm.utils import random_uuid
13
vllm/entrypoints/pooling/classify/serving.py
+1 -1
@@ -6,7 +6,7 @@ from typing import TypeAlias
6 import numpy as np
7 from fastapi.responses import JSONResponse
8
9 -from vllm.entrypoints.openai.engine.protocol import UsageInfo
9 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
10 from vllm.logger import init_logger
11 from vllm.outputs import ClassificationOutput
12
vllm/entrypoints/pooling/embed/api_router.py
+1 -1
@@ -5,7 +5,7 @@ from http import HTTPStatus
5
6 from fastapi import APIRouter, Depends, Request
7
8 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
8 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
9 from vllm.entrypoints.serve.utils.api_utils import (
10 load_aware_call,
11 validate_json_request,
vllm/entrypoints/pooling/embed/protocol.py
+1 -1
@@ -18,7 +18,7 @@ from pydantic import BaseModel, BeforeValidator, Field, model_validator
18
19 from vllm import PoolingParams
20 from vllm.entrypoints.chat_utils import ChatCompletionMessageParam
21 -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, UsageInfo
21 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
22 from vllm.utils import random_uuid
23
24 from ..base.protocol import (
vllm/entrypoints/pooling/pooling/api_router.py
+1 -1
@@ -4,7 +4,7 @@ from http import HTTPStatus
4
5 from fastapi import APIRouter, Depends, Request
6
7 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
7 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
8 from vllm.entrypoints.serve.utils.api_utils import (
9 load_aware_call,
10 validate_json_request,
vllm/entrypoints/pooling/pooling/protocol.py
+1 -1
@@ -7,7 +7,7 @@ from pydantic import BeforeValidator, Field
7
8 from vllm import PoolingParams
9 from vllm.config import ModelConfig
10 -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, UsageInfo
10 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
11 from vllm.renderers import TokenizeParams
12 from vllm.tasks import PoolingTask
13 from vllm.utils import random_uuid
vllm/entrypoints/pooling/scoring/api_router.py
+1 -1
@@ -4,7 +4,7 @@ from http import HTTPStatus
4
5 from fastapi import APIRouter, Depends, Request
6
7 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
7 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
8 from vllm.entrypoints.serve.utils.api_utils import (
9 load_aware_call,
10 validate_json_request,
vllm/entrypoints/pooling/scoring/protocol.py
+1 -1
@@ -7,7 +7,7 @@ from pydantic import BaseModel, Field, model_validator
7
8 from vllm import PoolingParams
9 from vllm.config import ModelConfig
10 -from vllm.entrypoints.openai.engine.protocol import OpenAIBaseModel, UsageInfo
10 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
11 from vllm.renderers import TokenizeParams
12 from vllm.tasks import PoolingTask
13 from vllm.utils import random_uuid
vllm/entrypoints/pooling/scoring/serving.py
+1 -1
@@ -5,7 +5,7 @@ from fastapi.responses import JSONResponse, Response
5
6 from vllm import PoolingParams
7 from vllm.engine.protocol import EngineClient
8 -from vllm.entrypoints.openai.engine.protocol import UsageInfo
8 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
9 from vllm.logger import init_logger
10 from vllm.outputs import PoolingRequestOutput, ScoringRequestOutput
11 from vllm.tasks import SCORE_TYPE_MAP, SupportedTask
vllm/entrypoints/pooling/utils.py
+1 -1
@@ -14,7 +14,7 @@ import torch
14 from fastapi.responses import JSONResponse, StreamingResponse
15
16 from vllm.config import ModelConfig
17 -from vllm.entrypoints.openai.engine.protocol import UsageInfo
17 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
18 from vllm.logger import init_logger
19 from vllm.outputs import PoolingRequestOutput
20 from vllm.tasks import SupportedTask
vllm/entrypoints/scale_out/derender/api_router.py
+1 -1
@@ -5,7 +5,7 @@ from http import HTTPStatus
5 from fastapi import APIRouter, Depends, Request
6 from fastapi.responses import JSONResponse
7
8 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
8 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
9 from vllm.entrypoints.serve.utils.api_utils import validate_json_request
10 from vllm.logger import init_logger
11
vllm/entrypoints/scale_out/derender/serving.py
+1 -4
@@ -12,14 +12,11 @@ from vllm.entrypoints.openai.completion.protocol import (
12 CompletionResponse,
13 CompletionStreamResponse,
14 )
15 -from vllm.entrypoints.openai.engine.protocol import (
16 - ErrorResponse,
17 - UsageInfo,
18 -)
15 from vllm.entrypoints.openai.models.serving import (
16 OpenAIModelRegistry,
17 OpenAIServingModels,
18 )
19 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo
20 from vllm.entrypoints.serve.engine.serving import BaseServing
21 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
22 from vllm.inputs import (
vllm/entrypoints/scale_out/render/api_router.py
+1 -1
@@ -8,7 +8,7 @@ from fastapi.responses import JSONResponse
8 from vllm.entrypoints.anthropic.protocol import AnthropicMessagesRequest
9 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
10 from vllm.entrypoints.openai.completion.protocol import CompletionRequest
11 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
11 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
12 from vllm.entrypoints.serve.utils.api_utils import validate_json_request
13 from vllm.logger import init_logger
14
vllm/entrypoints/scale_out/render/serving.py
+1 -1
@@ -6,7 +6,6 @@ from vllm.entrypoints.anthropic.protocol import AnthropicMessagesRequest
6 from vllm.entrypoints.anthropic.serving import AnthropicServingMessages
7 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
8 from vllm.entrypoints.openai.completion.protocol import CompletionRequest
9 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
9 from vllm.entrypoints.openai.models.serving import (
10 OpenAIModelRegistry,
11 OpenAIServingModels,
@@ -17,6 +16,7 @@ from vllm.entrypoints.scale_out.token_in_token_out.protocol import (
16 MultiModalFeatures,
17 PlaceholderRangeInfo,
18 )
19 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
20 from vllm.entrypoints.serve.engine.serving import BaseServing
21 from vllm.entrypoints.serve.utils.api_utils import get_max_tokens
22 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
vllm/entrypoints/scale_out/token_in_token_out/api_router.py
+1 -1
@@ -10,7 +10,6 @@ from fastapi import APIRouter, Depends, FastAPI, HTTPException, Request, Respons
10 from fastapi.responses import JSONResponse, StreamingResponse
11
12 from vllm.engine.protocol import EngineClient
13 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
13 from vllm.entrypoints.serve.tokenize.serving import ServingTokenization
14 from vllm.entrypoints.serve.utils.api_utils import (
15 load_aware_call,
@@ -19,6 +18,7 @@ from vllm.entrypoints.serve.utils.api_utils import (
18 )
19 from vllm.logger import init_logger
20
21 +from ...serve.engine.protocol import ErrorResponse
22 from .protocol import (
23 GenerateRequest,
24 GenerateResponse,
vllm/entrypoints/scale_out/token_in_token_out/protocol.py
+2 -1
@@ -11,6 +11,7 @@ from pydantic import (
11 )
12
13 from vllm.config import ModelConfig
14 +from vllm.entrypoints.generate.base.protocol import StreamOptions
15 from vllm.entrypoints.openai.chat_completion.protocol import (
16 ChatCompletionLogProbs,
17 ChatCompletionRequest,
@@ -20,7 +21,7 @@ from vllm.entrypoints.openai.completion.protocol import (
21 CompletionRequest,
22 CompletionStreamResponse,
23 )
23 -from vllm.entrypoints.openai.engine.protocol import StreamOptions, UsageInfo
24 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
25 from vllm.logprobs import Logprob
26 from vllm.renderers import TokenizeParams
27 from vllm.sampling_params import SamplingParams
vllm/entrypoints/scale_out/token_in_token_out/serving.py
+4 -4
@@ -12,6 +12,7 @@ from fastapi import Request
12
13 from vllm.engine.protocol import EngineClient
14 from vllm.entrypoints.chat_utils import AsyncMultiModalItemTracker
15 +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata
16 from vllm.entrypoints.generate.base.serving import (
17 GenerateBaseServing,
18 clamp_prompt_logprobs,
@@ -21,16 +22,15 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
22 ChatCompletionLogProbs,
23 ChatCompletionLogProbsContent,
24 )
24 -from vllm.entrypoints.openai.engine.protocol import (
25 +from vllm.entrypoints.openai.models.serving import OpenAIServingModels
26 +from vllm.entrypoints.serve.engine.protocol import (
27 ErrorResponse,
26 - GenerationError,
28 PromptTokenUsageInfo,
28 - RequestResponseMetadata,
29 UsageInfo,
30 )
31 -from vllm.entrypoints.openai.models.serving import OpenAIServingModels
31 from vllm.entrypoints.serve.utils.api_utils import get_max_tokens, should_include_usage
32 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
33 +from vllm.exceptions import GenerationError
34 from vllm.inputs import EngineInput, TokensPrompt, mm_input
35 from vllm.logger import init_logger
36 from vllm.logprobs import Logprob
vllm/entrypoints/serve/elastic_ep/api_router.py
+1 -3
@@ -9,10 +9,8 @@ from fastapi import APIRouter, Depends, FastAPI, HTTPException, Request
9 from fastapi.responses import JSONResponse
10
11 from vllm.engine.protocol import EngineClient
12 -from vllm.entrypoints.openai.engine.protocol import (
13 - ErrorResponse,
14 -)
12 from vllm.entrypoints.serve.elastic_ep.middleware import get_scaling_elastic_ep
13 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
14 from vllm.entrypoints.serve.utils.api_utils import validate_json_request
15 from vllm.logger import init_logger
16
vllm/entrypoints/serve/engine/protocol.py new
+115
@@ -0,0 +1,115 @@
1 +# SPDX-License-Identifier: Apache-2.0
2 +# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 +
4 +# Adapted from
5 +# https://github.com/lm-sys/FastChat/blob/168ccc29d3f7edc50823016105c024fe2282732a/fastchat/protocol/openai_api_protocol.py
6 +import time
7 +from typing import ClassVar
8 +
9 +from pydantic import (
10 + BaseModel,
11 + ConfigDict,
12 + Field,
13 + model_validator,
14 +)
15 +
16 +from vllm.logger import init_logger
17 +from vllm.utils import random_uuid
18 +
19 +logger = init_logger(__name__)
20 +
21 +
22 +class OpenAIBaseModel(BaseModel):
23 + # OpenAI API does allow extra fields
24 + model_config = ConfigDict(extra="allow")
25 +
26 + # Cache class field names
27 + field_names: ClassVar[set[str] | None] = None
28 +
29 + @model_validator(mode="wrap")
30 + @classmethod
31 + def __log_extra_fields__(cls, data, handler):
32 + result = handler(data)
33 + if not isinstance(data, dict):
34 + return result
35 + field_names = cls.field_names
36 + if field_names is None:
37 + # Get all class field names and their potential aliases
38 + field_names = set()
39 + for field_name, field in cls.model_fields.items():
40 + field_names.add(field_name)
41 + if alias := getattr(field, "alias", None):
42 + field_names.add(alias)
43 + cls.field_names = field_names
44 +
45 + # Compare against both field names and aliases
46 + if any(k not in field_names for k in data):
47 + logger.debug(
48 + "The following fields were present in the request but ignored: %s",
49 + data.keys() - field_names,
50 + )
51 + return result
52 +
53 +
54 +class ErrorInfo(OpenAIBaseModel):
55 + message: str
56 + type: str
57 + param: str | None = None
58 + code: int
59 +
60 +
61 +class ErrorResponse(OpenAIBaseModel):
62 + error: ErrorInfo
63 +
64 +
65 +class ModelPermission(OpenAIBaseModel):
66 + id: str = Field(default_factory=lambda: f"modelperm-{random_uuid()}")
67 + object: str = "model_permission"
68 + created: int = Field(default_factory=lambda: int(time.time()))
69 + allow_create_engine: bool = False
70 + allow_sampling: bool = True
71 + allow_logprobs: bool = True
72 + allow_search_indices: bool = False
73 + allow_view: bool = True
74 + allow_fine_tuning: bool = False
75 + organization: str = "*"
76 + group: str | None = None
77 + is_blocking: bool = False
78 +
79 +
80 +class ModelCard(OpenAIBaseModel):
81 + id: str
82 + object: str = "model"
83 + created: int = Field(default_factory=lambda: int(time.time()))
84 + owned_by: str = "vllm"
85 + root: str | None = None
86 + parent: str | None = None
87 + max_model_len: int | None = None
88 + permission: list[ModelPermission] = Field(default_factory=list)
89 +
90 +
91 +class ModelList(OpenAIBaseModel):
92 + object: str = "list"
93 + data: list[ModelCard] = Field(default_factory=list)
94 +
95 +
96 +class PromptTokenUsageInfo(OpenAIBaseModel):
97 + cached_tokens: int | None = None
98 + created_cache_tokens: int | None = None
99 + multimodal_tokens: dict[str, int] | None = None
100 + """Prompt tokens contributed by each input modality, keyed by modality name
101 + (e.g. `image`, `audio`, `video`). A breakdown of the multimodal
102 + placeholder tokens already counted in `prompt_tokens`; `None` when the
103 + request has no multimodal input."""
104 +
105 +
106 +class CompletionTokenUsageInfo(OpenAIBaseModel):
107 + reasoning_tokens: int = 0
108 +
109 +
110 +class UsageInfo(OpenAIBaseModel):
111 + prompt_tokens: int = 0
112 + total_tokens: int = 0
113 + completion_tokens: int | None = 0
114 + prompt_tokens_details: PromptTokenUsageInfo | None = None
115 + completion_tokens_details: CompletionTokenUsageInfo | None = None
vllm/entrypoints/serve/engine/serving.py
+1 -1
@@ -6,13 +6,13 @@ from fastapi import Request
6
7 from vllm import PromptType, SamplingParams, envs
8 from vllm.config import ModelConfig
9 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
9 from vllm.entrypoints.openai.models.serving import (
10 OpenAIModelRegistry,
11 OpenAIServingModels,
12 )
13 from vllm.entrypoints.pooling.typing import AnyPoolingRequest
14 from vllm.entrypoints.serve import create_error_response
15 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
16 from vllm.entrypoints.serve.engine.typing import AnyRequest
17 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
18 from vllm.exceptions import VLLMNotFoundError
vllm/entrypoints/serve/exception_handling/error_response.py
+2 -5
@@ -2,13 +2,10 @@
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 from http import HTTPStatus
4
5 -from vllm.entrypoints.openai.engine.protocol import (
6 - ErrorInfo,
7 - ErrorResponse,
8 - GenerationError,
9 -)
5 +from vllm.exceptions import GenerationError
6 from vllm.logger import init_logger
7
8 +from ..engine.protocol import ErrorInfo, ErrorResponse
9 from .utils import sanitize_message
10
11 logger = init_logger(__name__)
vllm/entrypoints/serve/exception_handling/handlers/http.py
+1 -1
@@ -5,7 +5,7 @@ from http import HTTPStatus
5 from fastapi import HTTPException, Request
6 from starlette.responses import JSONResponse
7
8 -from vllm.entrypoints.openai.engine.protocol import ErrorInfo, ErrorResponse
8 +from vllm.entrypoints.serve.engine.protocol import ErrorInfo, ErrorResponse
9 from vllm.logger import init_logger
10
11 from ..utils import sanitize_message
vllm/entrypoints/serve/exception_handling/handlers/validation.py
+1 -1
@@ -8,7 +8,7 @@ from fastapi import Request
8 from fastapi.exceptions import RequestValidationError
9 from starlette.responses import JSONResponse
10
11 -from vllm.entrypoints.openai.engine.protocol import ErrorInfo, ErrorResponse
11 +from vllm.entrypoints.serve.engine.protocol import ErrorInfo, ErrorResponse
12 from vllm.exceptions import VLLMValidationError
13 from vllm.logger import init_logger
14
vllm/entrypoints/serve/exception_handling/handlers/vllm_error.py
+1 -2
@@ -5,8 +5,7 @@ from fastapi import Request
5 from starlette.responses import JSONResponse
6
7 from vllm.entrypoints.launchers.launcher import terminate_if_errored
8 -from vllm.entrypoints.openai.engine.protocol import GenerationError
9 -from vllm.exceptions import VLLMError
8 +from vllm.exceptions import GenerationError, VLLMError
9 from vllm.logger import init_logger
10 from vllm.v1.engine.exceptions import EngineDeadError, EngineGenerateError
11
vllm/entrypoints/serve/fault_tolerance/api_router.py
+1 -1
@@ -8,7 +8,7 @@ from fastapi import APIRouter, BackgroundTasks, Depends, FastAPI, HTTPException,
8 from fastapi.responses import JSONResponse
9
10 from vllm.engine.protocol import EngineClient
11 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
11 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
12 from vllm.entrypoints.serve.utils.api_utils import validate_json_request
13 from vllm.logger import init_logger
14 from vllm.v1.fault_tolerance.utils import FaultToleranceRequest
vllm/entrypoints/serve/lora/api_router.py
+1 -3
@@ -7,11 +7,9 @@ from fastapi import APIRouter, Depends, FastAPI, Request
7 from fastapi.responses import JSONResponse, Response
8
9 from vllm import envs
10 -from vllm.entrypoints.openai.engine.protocol import (
11 - ErrorResponse,
12 -)
10 from vllm.entrypoints.openai.models.api_router import models
11 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
12 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
13 from vllm.entrypoints.serve.lora.protocol import (
14 LoadLoRAAdapterRequest,
15 UnloadLoRAAdapterRequest,
vllm/entrypoints/serve/sagemaker/api_router.py
+1 -1
@@ -12,8 +12,8 @@ from fastapi.responses import JSONResponse, Response
12
13 from vllm.config import ModelConfig
14 from vllm.entrypoints.generate.factories import get_generate_invocation_types
15 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
15 from vllm.entrypoints.pooling.factories import get_pooling_invocation_types
16 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
17 from vllm.entrypoints.serve.engine.serving import BaseServing
18 from vllm.entrypoints.serve.instrumentator.basic import base
19 from vllm.entrypoints.serve.instrumentator.health import health
vllm/entrypoints/serve/tokenize/api_router.py
+1 -1
@@ -8,7 +8,7 @@ from fastapi import APIRouter, Depends, FastAPI, Request
8 from fastapi.responses import JSONResponse
9 from typing_extensions import assert_never
10
11 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
11 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
12 from vllm.entrypoints.serve.tokenize.protocol import (
13 DetokenizeRequest,
14 DetokenizeResponse,
vllm/entrypoints/serve/tokenize/protocol.py
+2 -6
@@ -11,12 +11,8 @@ from vllm.entrypoints.chat_utils import (
11 ChatCompletionMessageParam,
12 ChatTemplateContentFormatOption,
13 )
14 -from vllm.entrypoints.openai.chat_completion.protocol import (
15 - ChatCompletionToolsParam,
16 -)
17 -from vllm.entrypoints.openai.engine.protocol import (
18 - OpenAIBaseModel,
19 -)
14 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionToolsParam
15 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel
16 from vllm.exceptions import VLLMValidationError
17 from vllm.renderers import ChatParams, TokenizeParams, merge_kwargs
18
vllm/entrypoints/serve/tokenize/serving.py
+1 -1
@@ -6,11 +6,11 @@ from typing import Any, Final
6 from fastapi import Request
7
8 from vllm.entrypoints.chat_utils import ChatTemplateContentFormatOption
9 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
9 from vllm.entrypoints.openai.models.serving import (
10 OpenAIModelRegistry,
11 OpenAIServingModels,
12 )
13 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
14 from vllm.entrypoints.serve.engine.serving import BaseServing
15 from vllm.entrypoints.serve.tokenize.protocol import (
16 DetokenizeRequest,
vllm/entrypoints/serve/utils/api_utils.py
+1 -1
@@ -17,7 +17,7 @@ from starlette.background import BackgroundTask, BackgroundTasks
17
18 from vllm import envs
19 from vllm.engine.arg_utils import EngineArgs
20 -from vllm.entrypoints.openai.engine.protocol import StreamOptions
20 +from vllm.entrypoints.generate.base.protocol import StreamOptions
21 from vllm.entrypoints.openai.models.protocol import LoRAModulePath
22 from vllm.logger import current_formatter_type, init_logger
23 from vllm.platforms import current_platform
vllm/entrypoints/speech_to_text/base/serving.py
+3 -4
@@ -16,14 +16,13 @@ from transformers import PreTrainedTokenizerBase
16
17 import vllm.envs as envs
18 from vllm.engine.protocol import EngineClient
19 -from vllm.entrypoints.generate.base.serving import GenerateBaseServing
20 -from vllm.entrypoints.openai.engine.protocol import (
19 +from vllm.entrypoints.generate.base.protocol import (
20 DeltaMessage,
22 - ErrorResponse,
21 RequestResponseMetadata,
24 - UsageInfo,
22 )
23 +from vllm.entrypoints.generate.base.serving import GenerateBaseServing
24 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
25 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo
26 from vllm.entrypoints.serve.engine.typing import SpeechToTextRequest
27 from vllm.entrypoints.serve.utils.api_utils import get_max_tokens
28 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
vllm/entrypoints/speech_to_text/realtime/connection.py
+1 -1
@@ -13,7 +13,7 @@ from fastapi import WebSocket
13 from starlette.websockets import WebSocketDisconnect
14
15 from vllm import envs
16 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse, UsageInfo
16 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse, UsageInfo
17 from vllm.entrypoints.serve.exception_handling.utils import sanitize_message
18 from vllm.exceptions import VLLMValidationError
19 from vllm.logger import init_logger
vllm/entrypoints/speech_to_text/realtime/protocol.py
+1 -4
@@ -6,10 +6,7 @@ from typing import Literal
6
7 from pydantic import Field
8
9 -from vllm.entrypoints.openai.engine.protocol import (
10 - OpenAIBaseModel,
11 - UsageInfo,
12 -)
9 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
10 from vllm.utils import random_uuid
11
12 # Client -> Server Events
vllm/entrypoints/speech_to_text/transcription/api_router.py
+1 -1
@@ -8,7 +8,6 @@ from typing import Annotated
8 from fastapi import APIRouter, Form, Request
9 from fastapi.responses import JSONResponse, StreamingResponse
10
11 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
11 from vllm.entrypoints.serve.utils.api_utils import (
12 load_aware_call,
13 with_cancellation,
@@ -16,6 +15,7 @@ from vllm.entrypoints.serve.utils.api_utils import (
15 from vllm.entrypoints.speech_to_text.base.utils import read_upload_with_limit
16 from vllm.logger import init_logger
17
18 +from ...serve.engine.protocol import ErrorResponse
19 from .protocol import TranscriptionRequest, TranscriptionResponseVariant
20 from .serving import OpenAIServingTranscription
21
vllm/entrypoints/speech_to_text/transcription/protocol.py
+2 -5
@@ -13,11 +13,8 @@ from pydantic import (
13 )
14
15 from vllm.config.speech_to_text import SpeechToTextParams
16 -from vllm.entrypoints.openai.engine.protocol import (
17 - DeltaMessage,
18 - OpenAIBaseModel,
19 - UsageInfo,
20 -)
16 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
17 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
18 from vllm.exceptions import VLLMValidationError
19 from vllm.logger import init_logger
20 from vllm.sampling_params import (
vllm/entrypoints/speech_to_text/transcription/serving.py
+2 -4
@@ -5,15 +5,13 @@ from collections.abc import AsyncGenerator
5 from fastapi import Request
6
7 from vllm.engine.protocol import EngineClient
8 -from vllm.entrypoints.openai.engine.protocol import (
9 - ErrorResponse,
10 - RequestResponseMetadata,
11 -)
8 +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata
9 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
10 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
11 from vllm.logger import init_logger
12 from vllm.outputs import RequestOutput
13
14 +from ...serve.engine.protocol import ErrorResponse
15 from ..base.serving import SpeechToTextBaseServing
16 from .protocol import (
17 TranscriptionRequest,
vllm/entrypoints/speech_to_text/translation/api_router.py
+1 -1
@@ -8,7 +8,7 @@ from typing import Annotated
8 from fastapi import APIRouter, Form, Request
9 from fastapi.responses import JSONResponse, StreamingResponse
10
11 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
11 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
12 from vllm.entrypoints.serve.utils.api_utils import (
13 load_aware_call,
14 with_cancellation,
vllm/entrypoints/speech_to_text/translation/protocol.py
+2 -5
@@ -12,11 +12,8 @@ from pydantic import (
12 )
13
14 from vllm.config.speech_to_text import SpeechToTextParams
15 -from vllm.entrypoints.openai.engine.protocol import (
16 - DeltaMessage,
17 - OpenAIBaseModel,
18 - UsageInfo,
19 -)
15 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
16 +from vllm.entrypoints.serve.engine.protocol import OpenAIBaseModel, UsageInfo
17 from vllm.exceptions import VLLMValidationError
18 from vllm.logger import init_logger
19 from vllm.sampling_params import (
vllm/entrypoints/speech_to_text/translation/serving.py
+2 -4
@@ -5,11 +5,9 @@ from collections.abc import AsyncGenerator
5 from fastapi import Request
6
7 from vllm.engine.protocol import EngineClient
8 -from vllm.entrypoints.openai.engine.protocol import (
9 - ErrorResponse,
10 - RequestResponseMetadata,
11 -)
8 +from vllm.entrypoints.generate.base.protocol import RequestResponseMetadata
9 from vllm.entrypoints.openai.models.serving import OpenAIServingModels
10 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
11 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
12 from vllm.logger import init_logger
13 from vllm.outputs import RequestOutput
vllm/exceptions.py
+9
@@ -3,6 +3,7 @@
3
4 """Custom exceptions for vLLM."""
5
6 +from http import HTTPStatus
7 from typing import Any
8
9
@@ -116,3 +117,11 @@ class VLLMUnprocessableEntityError(VLLMClientError):
117 if self.value is not None:
118 extras.append(f"value={self.value}")
119 return f"{base} ({', '.join(extras)})" if extras else base
120 +
121 +
122 +class GenerationError(VLLMServerError):
123 + """raised when finish_reason indicates internal server error (500)"""
124 +
125 + def __init__(self, message: str = "Internal server error"):
126 + super().__init__(message)
127 + self.status_code = HTTPStatus.INTERNAL_SERVER_ERROR
vllm/parser/abstract_parser.py
+5 -5
@@ -15,16 +15,16 @@ from vllm.entrypoints.chat_utils import (
15 get_tool_call_id_type,
16 make_tool_call_id,
17 )
18 -from vllm.entrypoints.openai.chat_completion.protocol import (
19 - ChatCompletionNamedToolChoiceParam,
20 - ChatCompletionRequest,
21 -)
22 -from vllm.entrypoints.openai.engine.protocol import (
18 +from vllm.entrypoints.generate.base.protocol import (
19 DeltaMessage,
20 ExtractedToolCallInformation,
21 FunctionCall,
22 FunctionDefinition,
23 )
24 +from vllm.entrypoints.openai.chat_completion.protocol import (
25 + ChatCompletionNamedToolChoiceParam,
26 + ChatCompletionRequest,
27 +)
28 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
29 from vllm.logger import init_logger
30 from vllm.parser.metrics import record_tool_parser_invocation
vllm/parser/engine/adapters.py
+4 -4
@@ -19,13 +19,13 @@ from vllm.reasoning.abs_reasoning_parsers import ReasoningParser
19 from vllm.tool_parsers.abstract_tool_parser import ToolParser
20
21 if TYPE_CHECKING:
22 - from vllm.entrypoints.openai.chat_completion.protocol import (
23 - ChatCompletionRequest,
24 - )
25 - from vllm.entrypoints.openai.engine.protocol import (
22 + from vllm.entrypoints.generate.base.protocol import (
23 DeltaMessage,
24 ExtractedToolCallInformation,
25 )
26 + from vllm.entrypoints.openai.chat_completion.protocol import (
27 + ChatCompletionRequest,
28 + )
29 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
30 from vllm.parser.engine.parser_engine import ParserEngine
31 from vllm.tokenizers import TokenizerLike
vllm/parser/engine/parser_engine.py
+1 -1
@@ -14,7 +14,7 @@ from typing import TYPE_CHECKING
14 import regex as re
15
16 from vllm.entrypoints.chat_utils import get_tool_call_id_type, make_tool_call_id
17 -from vllm.entrypoints.openai.engine.protocol import (
17 +from vllm.entrypoints.generate.base.protocol import (
18 DeltaFunctionCall,
19 DeltaMessage,
20 DeltaToolCall,
vllm/parser/gemma4.py
+1 -1
@@ -17,7 +17,7 @@ import json
17 from collections.abc import Sequence
18 from typing import TYPE_CHECKING
19
20 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
20 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
21 from vllm.logger import init_logger
22 from vllm.parser.engine.events import EventType, SemanticEvent
23 from vllm.parser.engine.parser_engine import ParserEngine
vllm/parser/harmony.py
+4 -4
@@ -27,15 +27,15 @@ from xgrammar.structural_tag import (
27 )
28
29 from vllm.entrypoints.chat_utils import make_tool_call_id
30 -from vllm.entrypoints.openai.chat_completion.protocol import (
31 - ChatCompletionRequest,
32 -)
33 -from vllm.entrypoints.openai.engine.protocol import (
30 +from vllm.entrypoints.generate.base.protocol import (
31 DeltaFunctionCall,
32 DeltaMessage,
33 DeltaToolCall,
34 FunctionCall,
35 )
36 +from vllm.entrypoints.openai.chat_completion.protocol import (
37 + ChatCompletionRequest,
38 +)
39 from vllm.entrypoints.openai.parser.harmony_utils import (
40 extract_function_from_recipient,
41 get_streamable_parser_for_assistant,
vllm/parser/inkling.py
+1 -3
@@ -29,9 +29,7 @@ import json
29 from collections.abc import Sequence
30 from typing import TYPE_CHECKING
31
32 -from vllm.entrypoints.openai.engine.protocol import (
33 - ExtractedToolCallInformation,
34 -)
32 +from vllm.entrypoints.generate.base.protocol import ExtractedToolCallInformation
33 from vllm.parser.engine.events import EventType
34 from vllm.parser.engine.parser_engine import ParserEngine
35 from vllm.parser.engine.parser_engine_config import (
vllm/parser/kimi_k2.py
+1 -1
@@ -21,7 +21,7 @@ from typing import TYPE_CHECKING
21
22 import regex as re
23
24 -from vllm.entrypoints.openai.engine.protocol import DeltaFunctionCall, DeltaToolCall
24 +from vllm.entrypoints.generate.base.protocol import DeltaFunctionCall, DeltaToolCall
25 from vllm.parser.engine.events import EventType
26 from vllm.parser.engine.parser_engine import ParserEngine
27 from vllm.parser.engine.parser_engine_config import (
vllm/parser/kimi_k3.py
+1 -1
@@ -6,7 +6,7 @@ from __future__ import annotations
6 from collections.abc import Sequence
7 from typing import TYPE_CHECKING
8
9 -from vllm.entrypoints.openai.engine.protocol import (
9 +from vllm.entrypoints.generate.base.protocol import (
10 DeltaMessage,
11 FunctionCall,
12 )
vllm/parser/mistral.py
+4 -4
@@ -28,10 +28,7 @@ from mistral_common.protocol.instruct.tool_calls import (
28 from mistral_common.tokens.tokenizers.base import SpecialTokens
29 from pydantic import Field
30
31 -from vllm.entrypoints.openai.chat_completion.protocol import (
32 - ChatCompletionNamedToolChoiceParam,
33 -)
34 -from vllm.entrypoints.openai.engine.protocol import (
31 +from vllm.entrypoints.generate.base.protocol import (
32 DeltaFunctionCall,
33 DeltaMessage,
34 DeltaToolCall,
@@ -39,6 +36,9 @@ from vllm.entrypoints.openai.engine.protocol import (
36 FunctionCall,
37 ToolCall,
38 )
39 +from vllm.entrypoints.openai.chat_completion.protocol import (
40 + ChatCompletionNamedToolChoiceParam,
41 +)
42 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
43 from vllm.logger import init_logger
44 from vllm.parser.engine.events import EventType
vllm/parser/nemotron_v3.py
+1 -1
@@ -19,10 +19,10 @@ from typing import TYPE_CHECKING
19 from vllm.parser.qwen3 import CHATML_TURN_BOUNDARIES, Qwen3Parser, qwen3_config
20
21 if TYPE_CHECKING:
22 + from vllm.entrypoints.generate.base.protocol import DeltaMessage
23 from vllm.entrypoints.openai.chat_completion.protocol import (
24 ChatCompletionRequest,
25 )
25 - from vllm.entrypoints.openai.engine.protocol import DeltaMessage
26 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
27 from vllm.parser.engine.parser_engine import SemanticEvent
28 from vllm.parser.engine.parser_engine_config import ParserEngineConfig
vllm/reasoning/abs_reasoning_parsers.py
+1 -1
@@ -15,8 +15,8 @@ from vllm.utils.import_utils import import_from_path
15
16 if TYPE_CHECKING:
17 from vllm.config import ModelConfig
18 + from vllm.entrypoints.generate.base.protocol import DeltaMessage
19 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
19 - from vllm.entrypoints.openai.engine.protocol import DeltaMessage
20 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
21 from vllm.tokenizers import TokenizerLike
22
vllm/reasoning/basic_parsers.py
+1 -1
@@ -6,7 +6,7 @@ from collections.abc import Iterable, Sequence
6 from itertools import islice
7 from typing import TYPE_CHECKING
8
9 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
9 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
10 from vllm.reasoning.abs_reasoning_parsers import ReasoningParser
11 from vllm.tokenizers import TokenizerLike
12
vllm/reasoning/cohere_command_reasoning_parser.py
+6 -6
@@ -5,7 +5,7 @@ from __future__ import annotations
5
6 import json
7 from collections.abc import Mapping, Sequence
8 -from typing import Any, NamedTuple, TypedDict, TypeGuard
8 +from typing import TYPE_CHECKING, Any, NamedTuple, TypedDict, TypeGuard
9
10 import regex as re
11 import xgrammar as xgr
@@ -25,20 +25,20 @@ from vllm.entrypoints.cohere.cohere_chat_message import (
25 CitationSource,
26 CohereDeltaMessage,
27 )
28 -from vllm.entrypoints.openai.chat_completion.protocol import (
29 - ChatCompletionRequest,
30 -)
31 -from vllm.entrypoints.openai.engine.protocol import (
28 +from vllm.entrypoints.generate.base.protocol import (
29 AnyResponseFormat,
30 DeltaFunctionCall,
31 DeltaMessage,
32 DeltaToolCall,
33 )
37 -from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
34 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
35 from vllm.reasoning import ReasoningParser
36 from vllm.sampling_params import StructuredOutputsParams
37 from vllm.tokenizers import TokenizerLike
38
39 +if TYPE_CHECKING:
40 + from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
41 +
42 REPLACEMENT_CHAR = "\ufffd"
43
44
vllm/reasoning/deepseek_r1_reasoning_parser.py
+1 -1
@@ -3,7 +3,7 @@
3
4 from collections.abc import Sequence
5
6 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
6 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
7 from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser
8
9
vllm/reasoning/deepseek_v3_reasoning_parser.py
+1 -1
@@ -12,8 +12,8 @@ from vllm.reasoning.deepseek_r1_reasoning_parser import DeepSeekR1ReasoningParse
12 from .identity_reasoning_parser import IdentityReasoningParser
13
14 if TYPE_CHECKING:
15 + from vllm.entrypoints.generate.base.protocol import DeltaMessage
16 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
16 - from vllm.entrypoints.openai.engine.protocol import DeltaMessage
17 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
18
19
vllm/reasoning/ernie45_reasoning_parser.py
+1 -1
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING
6
7 from transformers import PreTrainedTokenizerBase
8
9 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
9 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
10 from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser
11
12 if TYPE_CHECKING:
vllm/reasoning/gptoss_reasoning_parser.py
+1 -1
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
6 from transformers import PreTrainedTokenizerBase
7
8 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
8 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
9 from vllm.reasoning import ReasoningParser
10
11 if TYPE_CHECKING:
vllm/reasoning/granite_reasoning_parser.py
+1 -1
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING
7 import regex as re
8 from transformers import PreTrainedTokenizerBase
9
10 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
10 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
11 from vllm.reasoning import ReasoningParser
12
13 if TYPE_CHECKING:
vllm/reasoning/hunyuan_a13b_reasoning_parser.py
+1 -1
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING
7 import regex as re
8 from transformers import PreTrainedTokenizerBase
9
10 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
10 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
11 from vllm.reasoning import ReasoningParser
12
13 if TYPE_CHECKING:
vllm/reasoning/hy_v3_reasoning_parser.py
+6 -5
@@ -2,17 +2,18 @@
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 from collections.abc import Iterable, Sequence
5 +from typing import TYPE_CHECKING
6
6 -from vllm.entrypoints.openai.chat_completion.protocol import (
7 - ChatCompletionRequest,
8 -)
9 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
10 -from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
7 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
8 from vllm.logger import init_logger
9 from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser
10 from vllm.reasoning.identity_reasoning_parser import IdentityReasoningParser
11 from vllm.tokenizers import TokenizerLike
12
13 +if TYPE_CHECKING:
14 + from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
15 + from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
16 +
17 logger = init_logger(__name__)
18
19
vllm/reasoning/hy_v4_reasoning_parser.py
+6 -4
@@ -4,17 +4,19 @@
4 from __future__ import annotations
5
6 from collections.abc import Iterable, Sequence
7 -from typing import TypedDict
7 +from typing import TYPE_CHECKING, TypedDict
8
9 import regex as re
10
11 -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
12 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
13 -from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
11 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
12 from vllm.logger import init_logger
13 from vllm.reasoning import ReasoningParser
14 from vllm.tokenizers import TokenizerLike
15
16 +if TYPE_CHECKING:
17 + from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
18 + from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
19 +
20 logger = init_logger(__name__)
21
22 # Must match the chat template's own default for ``reasoning_effort``.
vllm/reasoning/identity_reasoning_parser.py
+1 -1
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING
6
7 from transformers import PreTrainedTokenizerBase
8
9 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
9 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
10 from vllm.reasoning import ReasoningParser
11
12 if TYPE_CHECKING:
vllm/reasoning/kimi_k3_reasoning_parser.py
+1 -1
@@ -28,7 +28,7 @@ from typing import TYPE_CHECKING
28 import regex as re
29 from transformers import PreTrainedTokenizerBase
30
31 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
31 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
32 from vllm.reasoning import ReasoningParser
33
34 if TYPE_CHECKING:
vllm/reasoning/minimax_m2_reasoning_parser.py
+1 -3
@@ -4,9 +4,7 @@
4 from collections.abc import Sequence
5 from typing import TYPE_CHECKING
6
7 -from vllm.entrypoints.openai.engine.protocol import (
8 - DeltaMessage,
9 -)
7 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
8 from vllm.parser.engine.registered_adapters import MinimaxM2ParserReasoningAdapter
9 from vllm.reasoning.abs_reasoning_parsers import ReasoningParser
10 from vllm.tokenizers import TokenizerLike
vllm/reasoning/minimax_m3_reasoning_parser.py
+1 -1
@@ -4,7 +4,7 @@
4 from collections.abc import Iterable, Sequence
5 from typing import TYPE_CHECKING
6
7 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
7 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
8 from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser
9
10 if TYPE_CHECKING:
vllm/reasoning/muse_glimmer_reasoning_parser.py
+1 -1
@@ -19,8 +19,8 @@ from collections.abc import Iterable, Sequence
19
20 import regex as re
21
22 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
23 from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
23 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
24 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
25 from vllm.reasoning.abs_reasoning_parsers import ReasoningParser
26
vllm/reasoning/olmo3_reasoning_parser.py
+1 -1
@@ -8,7 +8,7 @@ from typing import TYPE_CHECKING
8
9 import regex as re
10
11 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
11 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
12 from vllm.reasoning import ReasoningParser
13
14 if TYPE_CHECKING:
vllm/reasoning/step3_reasoning_parser.py
+1 -1
@@ -8,7 +8,7 @@ from typing import TYPE_CHECKING
8 import regex as re
9 from transformers import PreTrainedTokenizerBase
10
11 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
11 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
12 from vllm.reasoning import ReasoningParser
13
14 if TYPE_CHECKING:
vllm/reasoning/step3p5_reasoning_parser.py
+1 -1
@@ -4,7 +4,7 @@
4 from collections.abc import Iterable, Sequence
5 from typing import TYPE_CHECKING
6
7 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage
7 +from vllm.entrypoints.generate.base.protocol import DeltaMessage
8 from vllm.reasoning.basic_parsers import BaseThinkingReasoningParser
9 from vllm.tokenizers import TokenizerLike
10
vllm/renderers/online_derenderer.py
+2 -1
@@ -4,6 +4,7 @@ from typing import Any
4
5 from vllm.config import ModelConfig
6 from vllm.entrypoints.chat_utils import ChatTemplateContentFormatOption
7 +from vllm.entrypoints.generate.base.protocol import DeltaMessage, ToolCall
8 from vllm.entrypoints.generate.base.serving import resolve_token_id_placeholder
9 from vllm.entrypoints.openai.chat_completion.protocol import (
10 ChatCompletionLogProbs,
@@ -21,12 +22,12 @@ from vllm.entrypoints.openai.completion.protocol import (
22 CompletionResponseStreamChoice,
23 CompletionStreamResponse,
24 )
24 -from vllm.entrypoints.openai.engine.protocol import DeltaMessage, ToolCall, UsageInfo
25 from vllm.entrypoints.scale_out.token_in_token_out.protocol import (
26 DerenderStreamState,
27 GenerateResponse,
28 GenerateStreamResponse,
29 )
30 +from vllm.entrypoints.serve.engine.protocol import UsageInfo
31 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
32 from vllm.logger import init_logger
33 from vllm.parser import Parser, ParserManager
vllm/renderers/online_renderer.py
+1 -1
@@ -18,7 +18,6 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
18 from vllm.entrypoints.openai.completion.protocol import (
19 CompletionRequest,
20 )
21 -from vllm.entrypoints.openai.engine.protocol import ErrorResponse
21 from vllm.entrypoints.openai.parser.harmony_utils import (
22 build_harmony_preamble,
23 extract_instructions_from_messages,
@@ -27,6 +26,7 @@ from vllm.entrypoints.openai.parser.harmony_utils import (
26 )
27 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
28 from vllm.entrypoints.serve import create_error_response
29 +from vllm.entrypoints.serve.engine.protocol import ErrorResponse
30 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
31 from vllm.inputs import (
32 EngineInput,
vllm/tool_parsers/abstract_tool_parser.py
+4 -4
@@ -15,14 +15,14 @@ from openai.types.responses import (
15 from openai.types.responses.function_tool import FunctionTool
16
17 import vllm.envs as envs
18 +from vllm.entrypoints.generate.base.protocol import (
19 + DeltaMessage,
20 + ExtractedToolCallInformation,
21 +)
22 from vllm.entrypoints.openai.chat_completion.protocol import (
23 ChatCompletionRequest,
24 ChatCompletionToolsParam,
25 )
22 -from vllm.entrypoints.openai.engine.protocol import (
23 - DeltaMessage,
24 - ExtractedToolCallInformation,
25 -)
26 from vllm.entrypoints.openai.responses.protocol import (
27 ResponsesRequest,
28 )
vllm/tool_parsers/apertus_tool_parser.py
+2 -2
@@ -16,8 +16,7 @@ import regex as re
16 from partial_json_parser.core.options import Allow
17
18 from vllm.entrypoints.chat_utils import make_tool_call_id
19 -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
20 -from vllm.entrypoints.openai.engine.protocol import (
19 +from vllm.entrypoints.generate.base.protocol import (
20 DeltaFunctionCall,
21 DeltaMessage,
22 DeltaToolCall,
@@ -25,6 +24,7 @@ from vllm.entrypoints.openai.engine.protocol import (
24 FunctionCall,
25 ToolCall,
26 )
27 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
28 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
29 from vllm.logger import init_logger
30 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/cohere_command_tool_parser.py
+4 -4
@@ -12,10 +12,7 @@ except ImportError as e:
12 " pip install 'cohere-melody>=0.11.1'"
13 ) from e
14
15 -from vllm.entrypoints.openai.chat_completion.protocol import (
16 - ChatCompletionRequest,
17 -)
18 -from vllm.entrypoints.openai.engine.protocol import (
15 +from vllm.entrypoints.generate.base.protocol import (
16 DeltaFunctionCall,
17 DeltaMessage,
18 DeltaToolCall,
@@ -23,6 +20,9 @@ from vllm.entrypoints.openai.engine.protocol import (
20 FunctionCall,
21 ToolCall,
22 )
23 +from vllm.entrypoints.openai.chat_completion.protocol import (
24 + ChatCompletionRequest,
25 +)
26 from vllm.entrypoints.openai.responses.protocol import (
27 ResponsesRequest,
28 )
vllm/tool_parsers/deepseekv31_tool_parser.py
+4 -4
@@ -6,10 +6,7 @@ from collections.abc import Sequence
6 import regex as re
7
8 from vllm.entrypoints.chat_utils import make_tool_call_id
9 -from vllm.entrypoints.openai.chat_completion.protocol import (
10 - ChatCompletionRequest,
11 -)
12 -from vllm.entrypoints.openai.engine.protocol import (
9 +from vllm.entrypoints.generate.base.protocol import (
10 DeltaFunctionCall,
11 DeltaMessage,
12 DeltaToolCall,
@@ -17,6 +14,9 @@ from vllm.entrypoints.openai.engine.protocol import (
14 FunctionCall,
15 ToolCall,
16 )
17 +from vllm.entrypoints.openai.chat_completion.protocol import (
18 + ChatCompletionRequest,
19 +)
20 from vllm.logger import init_logger
21 from vllm.tokenizers import TokenizerLike
22 from vllm.tool_parsers.abstract_tool_parser import Tool, ToolParser
vllm/tool_parsers/deepseekv3_tool_parser.py
+4 -4
@@ -6,10 +6,7 @@ from collections.abc import Sequence
6 import regex as re
7
8 from vllm.entrypoints.chat_utils import make_tool_call_id
9 -from vllm.entrypoints.openai.chat_completion.protocol import (
10 - ChatCompletionRequest,
11 -)
12 -from vllm.entrypoints.openai.engine.protocol import (
9 +from vllm.entrypoints.generate.base.protocol import (
10 DeltaFunctionCall,
11 DeltaMessage,
12 DeltaToolCall,
@@ -17,6 +14,9 @@ from vllm.entrypoints.openai.engine.protocol import (
14 FunctionCall,
15 ToolCall,
16 )
17 +from vllm.entrypoints.openai.chat_completion.protocol import (
18 + ChatCompletionRequest,
19 +)
20 from vllm.logger import init_logger
21 from vllm.tokenizers import TokenizerLike
22 from vllm.tool_parsers.abstract_tool_parser import (
vllm/tool_parsers/dots_tool_parser.py
+5 -5
@@ -8,11 +8,7 @@ from typing import Any
8 import regex as re
9
10 from vllm.entrypoints.chat_utils import make_tool_call_id
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 - ChatCompletionToolsParam,
14 -)
15 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -20,6 +16,10 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 + ChatCompletionToolsParam,
22 +)
23 from vllm.logger import init_logger
24 from vllm.tokenizers import TokenizerLike
25 from vllm.tool_parsers.abstract_tool_parser import Tool, ToolParser
vllm/tool_parsers/ernie45_tool_parser.py
+4 -4
@@ -6,10 +6,7 @@ from collections.abc import Sequence
6
7 import regex as re
8
9 -from vllm.entrypoints.openai.chat_completion.protocol import (
10 - ChatCompletionRequest,
11 -)
12 -from vllm.entrypoints.openai.engine.protocol import (
9 +from vllm.entrypoints.generate.base.protocol import (
10 DeltaFunctionCall,
11 DeltaMessage,
12 DeltaToolCall,
@@ -17,6 +14,9 @@ from vllm.entrypoints.openai.engine.protocol import (
14 FunctionCall,
15 ToolCall,
16 )
17 +from vllm.entrypoints.openai.chat_completion.protocol import (
18 + ChatCompletionRequest,
19 +)
20 from vllm.logger import init_logger
21 from vllm.tokenizers import TokenizerLike
22 from vllm.tool_parsers.abstract_tool_parser import (
vllm/tool_parsers/functiongemma_tool_parser.py
+4 -4
@@ -7,10 +7,7 @@ from collections.abc import Sequence
7 import regex as re
8
9 from vllm.entrypoints.chat_utils import make_tool_call_id
10 -from vllm.entrypoints.openai.chat_completion.protocol import (
11 - ChatCompletionRequest,
12 -)
13 -from vllm.entrypoints.openai.engine.protocol import (
10 +from vllm.entrypoints.generate.base.protocol import (
11 DeltaFunctionCall,
12 DeltaMessage,
13 DeltaToolCall,
@@ -18,6 +15,9 @@ from vllm.entrypoints.openai.engine.protocol import (
15 FunctionCall,
16 ToolCall,
17 )
18 +from vllm.entrypoints.openai.chat_completion.protocol import (
19 + ChatCompletionRequest,
20 +)
21 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
22 from vllm.logger import init_logger
23 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/gigachat3_tool_parser.py
+4 -4
@@ -7,10 +7,7 @@ from collections.abc import Sequence
7 import regex as re
8
9 from vllm.entrypoints.chat_utils import make_tool_call_id
10 -from vllm.entrypoints.openai.chat_completion.protocol import (
11 - ChatCompletionRequest,
12 -)
13 -from vllm.entrypoints.openai.engine.protocol import (
10 +from vllm.entrypoints.generate.base.protocol import (
11 DeltaFunctionCall,
12 DeltaMessage,
13 DeltaToolCall,
@@ -18,6 +15,9 @@ from vllm.entrypoints.openai.engine.protocol import (
15 FunctionCall,
16 ToolCall,
17 )
18 +from vllm.entrypoints.openai.chat_completion.protocol import (
19 + ChatCompletionRequest,
20 +)
21 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
22 from vllm.logger import init_logger
23 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/gptoss_tool_parser.py
+1 -1
@@ -4,7 +4,7 @@
4 from collections.abc import Sequence
5 from typing import TYPE_CHECKING
6
7 -from vllm.entrypoints.openai.engine.protocol import (
7 +from vllm.entrypoints.generate.base.protocol import (
8 DeltaMessage,
9 ExtractedToolCallInformation,
10 )
vllm/tool_parsers/granite4_tool_parser.py
+4 -4
@@ -8,10 +8,7 @@ from typing import Any, Protocol, TypeVar
8 import regex as re
9
10 from vllm.entrypoints.chat_utils import make_tool_call_id
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 +)
22 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
23 from vllm.logger import init_logger
24 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/granite_20b_fc_tool_parser.py
+4 -4
@@ -10,10 +10,7 @@ import regex as re
10 from partial_json_parser.core.options import Allow
11
12 from vllm.entrypoints.chat_utils import make_tool_call_id
13 -from vllm.entrypoints.openai.chat_completion.protocol import (
14 - ChatCompletionRequest,
15 -)
16 -from vllm.entrypoints.openai.engine.protocol import (
13 +from vllm.entrypoints.generate.base.protocol import (
14 DeltaFunctionCall,
15 DeltaMessage,
16 DeltaToolCall,
@@ -21,6 +18,9 @@ from vllm.entrypoints.openai.engine.protocol import (
18 FunctionCall,
19 ToolCall,
20 )
21 +from vllm.entrypoints.openai.chat_completion.protocol import (
22 + ChatCompletionRequest,
23 +)
24 from vllm.logger import init_logger
25 from vllm.tokenizers import TokenizerLike
26 from vllm.tool_parsers.abstract_tool_parser import (
vllm/tool_parsers/granite_tool_parser.py
+4 -4
@@ -8,10 +8,7 @@ import partial_json_parser
8 from partial_json_parser.core.options import Allow
9
10 from vllm.entrypoints.chat_utils import make_tool_call_id
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 +)
22 from vllm.logger import init_logger
23 from vllm.tokenizers import TokenizerLike
24 from vllm.tool_parsers.abstract_tool_parser import (
vllm/tool_parsers/hermes_tool_parser.py
+4 -4
@@ -7,10 +7,7 @@ from collections.abc import Sequence
7 import regex as re
8
9 from vllm.entrypoints.chat_utils import make_tool_call_id
10 -from vllm.entrypoints.openai.chat_completion.protocol import (
11 - ChatCompletionRequest,
12 -)
13 -from vllm.entrypoints.openai.engine.protocol import (
10 +from vllm.entrypoints.generate.base.protocol import (
11 DeltaFunctionCall,
12 DeltaMessage,
13 DeltaToolCall,
@@ -18,6 +15,9 @@ from vllm.entrypoints.openai.engine.protocol import (
15 FunctionCall,
16 ToolCall,
17 )
18 +from vllm.entrypoints.openai.chat_completion.protocol import (
19 + ChatCompletionRequest,
20 +)
21 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
22 from vllm.logger import init_logger
23 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/hunyuan_a13b_tool_parser.py
+4 -4
@@ -8,10 +8,7 @@ from typing import Any
8
9 import regex as re
10
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 +)
22 from vllm.logger import init_logger
23 from vllm.tokenizers import TokenizerLike
24 from vllm.tool_parsers.abstract_tool_parser import (
vllm/tool_parsers/hy_v3_tool_parser.py
+5 -5
@@ -8,11 +8,7 @@ from typing import Any
8 import regex as re
9
10 from vllm.entrypoints.chat_utils import make_tool_call_id
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 - ChatCompletionToolsParam,
14 -)
15 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -20,6 +16,10 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 + ChatCompletionToolsParam,
22 +)
23 from vllm.logger import init_logger
24 from vllm.tokenizers import TokenizerLike
25 from vllm.tool_parsers.abstract_tool_parser import (
vllm/tool_parsers/hy_v4_tool_parser.py
+2 -2
@@ -12,8 +12,7 @@ import regex as re
12
13 import vllm.envs as envs
14 from vllm.entrypoints.chat_utils import make_tool_call_id
15 -from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
16 -from vllm.entrypoints.openai.engine.protocol import (
15 +from vllm.entrypoints.generate.base.protocol import (
16 DeltaFunctionCall,
17 DeltaMessage,
18 DeltaToolCall,
@@ -21,6 +20,7 @@ from vllm.entrypoints.openai.engine.protocol import (
20 FunctionCall,
21 ToolCall,
22 )
23 +from vllm.entrypoints.openai.chat_completion.protocol import ChatCompletionRequest
24 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
25 from vllm.logger import init_logger
26 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/internlm2_tool_parser.py
+4 -4
@@ -8,10 +8,7 @@ import partial_json_parser
8 from partial_json_parser.core.options import Allow
9
10 from vllm.entrypoints.chat_utils import make_tool_call_id
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 +)
22 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
23 from vllm.logger import init_logger
24 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/jamba_tool_parser.py
+4 -4
@@ -9,10 +9,7 @@ import regex as re
9 from partial_json_parser.core.options import Allow
10
11 from vllm.entrypoints.chat_utils import make_tool_call_id
12 -from vllm.entrypoints.openai.chat_completion.protocol import (
13 - ChatCompletionRequest,
14 -)
15 -from vllm.entrypoints.openai.engine.protocol import (
12 +from vllm.entrypoints.generate.base.protocol import (
13 DeltaFunctionCall,
14 DeltaMessage,
15 DeltaToolCall,
@@ -20,6 +17,9 @@ from vllm.entrypoints.openai.engine.protocol import (
17 FunctionCall,
18 ToolCall,
19 )
20 +from vllm.entrypoints.openai.chat_completion.protocol import (
21 + ChatCompletionRequest,
22 +)
23 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
24 from vllm.logger import init_logger
25 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/kimi_k3_tool_parser.py
+5 -5
@@ -37,11 +37,7 @@ from collections.abc import Sequence
37 import regex as re
38 from openai.types.responses import ToolChoiceFunction
39
40 -from vllm.entrypoints.openai.chat_completion.protocol import (
41 - ChatCompletionNamedToolChoiceParam,
42 - ChatCompletionRequest,
43 -)
44 -from vllm.entrypoints.openai.engine.protocol import (
40 +from vllm.entrypoints.generate.base.protocol import (
41 DeltaFunctionCall,
42 DeltaMessage,
43 DeltaToolCall,
@@ -49,6 +45,10 @@ from vllm.entrypoints.openai.engine.protocol import (
45 FunctionCall,
46 ToolCall,
47 )
48 +from vllm.entrypoints.openai.chat_completion.protocol import (
49 + ChatCompletionNamedToolChoiceParam,
50 + ChatCompletionRequest,
51 +)
52 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
53 from vllm.exceptions import VLLMValidationError
54 from vllm.logger import init_logger
vllm/tool_parsers/lfm2_tool_parser.py
+4 -4
@@ -8,13 +8,13 @@ from collections.abc import Sequence
8 import regex as re
9
10 import vllm.envs as envs
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaMessage,
13 ExtractedToolCallInformation,
14 )
15 +from vllm.entrypoints.openai.chat_completion.protocol import (
16 + ChatCompletionRequest,
17 +)
18 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
19 from vllm.logger import init_logger
20 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/llama4_pythonic_tool_parser.py
+4 -4
@@ -8,13 +8,13 @@ import regex as re
8 from transformers import PreTrainedTokenizerBase
9
10 import vllm.envs as envs
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaMessage,
13 ExtractedToolCallInformation,
14 )
15 +from vllm.entrypoints.openai.chat_completion.protocol import (
16 + ChatCompletionRequest,
17 +)
18 from vllm.logger import init_logger
19 from vllm.tool_parsers.abstract_tool_parser import (
20 Tool,
vllm/tool_parsers/llama_tool_parser.py
+4 -4
@@ -11,10 +11,7 @@ from transformers import PreTrainedTokenizerBase
11
12 import vllm.envs as envs
13 from vllm.entrypoints.chat_utils import make_tool_call_id
14 -from vllm.entrypoints.openai.chat_completion.protocol import (
15 - ChatCompletionRequest,
16 -)
17 -from vllm.entrypoints.openai.engine.protocol import (
14 +from vllm.entrypoints.generate.base.protocol import (
15 DeltaFunctionCall,
16 DeltaMessage,
17 DeltaToolCall,
@@ -22,6 +19,9 @@ from vllm.entrypoints.openai.engine.protocol import (
19 FunctionCall,
20 ToolCall,
21 )
22 +from vllm.entrypoints.openai.chat_completion.protocol import (
23 + ChatCompletionRequest,
24 +)
25 from vllm.logger import init_logger
26 from vllm.tool_parsers.abstract_tool_parser import (
27 Tool,
vllm/tool_parsers/minicpm5xml_tool_parser.py
+5 -5
@@ -8,11 +8,7 @@ from typing import Any
8 import regex as re
9
10 from vllm.entrypoints.chat_utils import make_tool_call_id
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 - ChatCompletionToolsParam,
14 -)
15 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -20,6 +16,10 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 + ChatCompletionToolsParam,
22 +)
23 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
24 from vllm.logger import init_logger
25 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/muse_glimmer_tool_parser.py
+5 -5
@@ -42,11 +42,7 @@ from openai.types.responses import ToolChoiceFunction
42 from transformers import PreTrainedTokenizerBase
43
44 from vllm.entrypoints.chat_utils import make_tool_call_id
45 -from vllm.entrypoints.openai.chat_completion.protocol import (
46 - ChatCompletionNamedToolChoiceParam,
47 - ChatCompletionRequest,
48 -)
49 -from vllm.entrypoints.openai.engine.protocol import (
45 +from vllm.entrypoints.generate.base.protocol import (
46 DeltaFunctionCall,
47 DeltaMessage,
48 DeltaToolCall,
@@ -54,6 +50,10 @@ from vllm.entrypoints.openai.engine.protocol import (
50 FunctionCall,
51 ToolCall,
52 )
53 +from vllm.entrypoints.openai.chat_completion.protocol import (
54 + ChatCompletionNamedToolChoiceParam,
55 + ChatCompletionRequest,
56 +)
57 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
58 from vllm.logger import init_logger
59 from vllm.tool_parsers.abstract_tool_parser import (
vllm/tool_parsers/olmo3_tool_parser.py
+4 -4
@@ -8,13 +8,13 @@ import regex as re
8 from transformers import PreTrainedTokenizerBase
9
10 import vllm.envs as envs
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaMessage,
13 ExtractedToolCallInformation,
14 )
15 +from vllm.entrypoints.openai.chat_completion.protocol import (
16 + ChatCompletionRequest,
17 +)
18 from vllm.logger import init_logger
19 from vllm.tool_parsers.abstract_tool_parser import (
20 Tool,
vllm/tool_parsers/phi4mini_tool_parser.py
+4 -4
@@ -9,15 +9,15 @@ import regex as re
9 from transformers import PreTrainedTokenizerBase
10
11 from vllm.entrypoints.chat_utils import make_tool_call_id
12 -from vllm.entrypoints.openai.chat_completion.protocol import (
13 - ChatCompletionRequest,
14 -)
15 -from vllm.entrypoints.openai.engine.protocol import (
12 +from vllm.entrypoints.generate.base.protocol import (
13 DeltaMessage,
14 ExtractedToolCallInformation,
15 FunctionCall,
16 ToolCall,
17 )
18 +from vllm.entrypoints.openai.chat_completion.protocol import (
19 + ChatCompletionRequest,
20 +)
21 from vllm.logger import init_logger
22 from vllm.tool_parsers.abstract_tool_parser import (
23 Tool,
vllm/tool_parsers/poolside_v1_tool_parser.py
+5 -5
@@ -21,11 +21,7 @@ from openai.types.responses import ToolChoiceFunction
21 from partial_json_parser.core.options import Allow
22
23 from vllm.entrypoints.chat_utils import make_tool_call_id
24 -from vllm.entrypoints.openai.chat_completion.protocol import (
25 - ChatCompletionNamedToolChoiceParam,
26 - ChatCompletionRequest,
27 -)
28 -from vllm.entrypoints.openai.engine.protocol import (
24 +from vllm.entrypoints.generate.base.protocol import (
25 DeltaFunctionCall,
26 DeltaMessage,
27 DeltaToolCall,
@@ -33,6 +29,10 @@ from vllm.entrypoints.openai.engine.protocol import (
29 FunctionCall,
30 ToolCall,
31 )
32 +from vllm.entrypoints.openai.chat_completion.protocol import (
33 + ChatCompletionNamedToolChoiceParam,
34 + ChatCompletionRequest,
35 +)
36 from vllm.entrypoints.openai.responses.protocol import (
37 ResponsesRequest,
38 )
vllm/tool_parsers/pythonic_tool_parser.py
+4 -4
@@ -8,13 +8,13 @@ import regex as re
8 from transformers import PreTrainedTokenizerBase
9
10 import vllm.envs as envs
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaMessage,
13 ExtractedToolCallInformation,
14 )
15 +from vllm.entrypoints.openai.chat_completion.protocol import (
16 + ChatCompletionRequest,
17 +)
18 from vllm.logger import init_logger
19 from vllm.tool_parsers.abstract_tool_parser import (
20 Tool,
vllm/tool_parsers/rust_tool_parser.py
+5 -5
@@ -8,11 +8,7 @@ from typing import Any
8 from openai.types.responses.function_tool import FunctionTool
9
10 from vllm.entrypoints.chat_utils import make_tool_call_id
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 - ChatCompletionToolsParam,
14 -)
15 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -20,6 +16,10 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 + ChatCompletionToolsParam,
22 +)
23 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
24 from vllm.logger import init_logger
25 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/step3_tool_parser.py
+4 -4
@@ -8,10 +8,7 @@ from typing import Any
8
9 import regex as re
10
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 +)
22 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
23 from vllm.logger import init_logger
24 from vllm.tokenizers import TokenizerLike
vllm/tool_parsers/step3p5_tool_parser.py
+4 -4
@@ -8,10 +8,7 @@ from xml.parsers.expat import ParserCreate
8 import regex as re
9
10 from vllm.entrypoints.chat_utils import make_tool_call_id
11 -from vllm.entrypoints.openai.chat_completion.protocol import (
12 - ChatCompletionRequest,
13 -)
14 -from vllm.entrypoints.openai.engine.protocol import (
11 +from vllm.entrypoints.generate.base.protocol import (
12 DeltaFunctionCall,
13 DeltaMessage,
14 DeltaToolCall,
@@ -19,6 +16,9 @@ from vllm.entrypoints.openai.engine.protocol import (
16 FunctionCall,
17 ToolCall,
18 )
19 +from vllm.entrypoints.openai.chat_completion.protocol import (
20 + ChatCompletionRequest,
21 +)
22 from vllm.logger import init_logger
23 from vllm.tokenizers import TokenizerLike
24 from vllm.tool_parsers.abstract_tool_parser import Tool, ToolParser
vllm/tool_parsers/streaming.py
+1 -1
@@ -9,7 +9,7 @@ import regex as re
9 from partial_json_parser.core.options import Allow
10
11 from vllm.entrypoints.chat_utils import make_tool_call_id
12 -from vllm.entrypoints.openai.engine.protocol import (
12 +from vllm.entrypoints.generate.base.protocol import (
13 DeltaFunctionCall,
14 DeltaMessage,
15 DeltaToolCall,
vllm/tool_parsers/utils.py
+5 -5
@@ -19,16 +19,16 @@ from openai.types.responses import (
19 from openai.types.responses.tool import Tool as ResponsesTool
20 from partial_json_parser.core.options import Allow
21
22 -from vllm.entrypoints.openai.chat_completion.protocol import (
23 - ChatCompletionNamedToolChoiceParam,
24 - ChatCompletionToolsParam,
25 -)
26 -from vllm.entrypoints.openai.engine.protocol import (
22 +from vllm.entrypoints.generate.base.protocol import (
23 DeltaFunctionCall,
24 DeltaToolCall,
25 FunctionCall,
26 ToolCall,
27 )
28 +from vllm.entrypoints.openai.chat_completion.protocol import (
29 + ChatCompletionNamedToolChoiceParam,
30 + ChatCompletionToolsParam,
31 +)
32 from vllm.logger import init_logger
33
34 Tool: TypeAlias = ChatCompletionToolsParam | ResponsesTool
vllm/tool_parsers/xlam_tool_parser.py
+1 -1
@@ -11,7 +11,7 @@ from vllm.entrypoints.openai.chat_completion.protocol import (
11 ChatCompletionRequest,
12 )
13 from vllm.entrypoints.chat_utils import make_tool_call_id
14 -from vllm.entrypoints.openai.engine.protocol import (
14 +from vllm.entrypoints.generate.base.protocol import (
15 DeltaFunctionCall,
16 DeltaMessage,
17 DeltaToolCall,