main
py 86 lines 2.34 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 from typing import Protocol, TypeAlias
5
6 from vllm.config import ModelConfig
7 from vllm.entrypoints.chat_utils import ChatTemplateContentFormatOption
8 from vllm.entrypoints.openai.chat_completion.protocol import (
9 BatchChatCompletionRequest,
10 ChatCompletionRequest,
11 ChatCompletionResponse,
12 )
13 from vllm.entrypoints.openai.completion.protocol import (
14 CompletionRequest,
15 CompletionResponse,
16 )
17 from vllm.entrypoints.openai.responses.protocol import ResponsesRequest
18 from vllm.entrypoints.scale_out.token_in_token_out.protocol import (
19 DerenderChatRequest,
20 DerenderChatStreamRequest,
21 DerenderCompletionRequest,
22 DerenderCompletionStreamRequest,
23 GenerateRequest,
24 GenerateResponse,
25 )
26 from vllm.entrypoints.serve.tokenize.protocol import (
27 DetokenizeRequest,
28 TokenizeChatRequest,
29 TokenizeCompletionRequest,
30 TokenizeResponse,
31 )
32 from vllm.entrypoints.speech_to_text.transcription.protocol import (
33 TranscriptionRequest,
34 TranscriptionResponse,
35 )
36 from vllm.entrypoints.speech_to_text.translation.protocol import TranslationRequest
37 from vllm.renderers import ChatParams, TokenizeParams
38
39
40 class RendererRequest(Protocol):
41 def build_tok_params(self, model_config: ModelConfig) -> TokenizeParams:
42 raise NotImplementedError
43
44
45 class RendererChatRequest(RendererRequest, Protocol):
46 def build_chat_params(
47 self,
48 default_template: str | None,
49 default_template_content_format: ChatTemplateContentFormatOption,
50 ) -> ChatParams:
51 raise NotImplementedError
52
53
54 CompletionLikeRequest: TypeAlias = (
55 CompletionRequest
56 | TokenizeCompletionRequest
57 | DetokenizeRequest
58 | DerenderCompletionRequest
59 | DerenderCompletionStreamRequest
60 )
61
62 ChatLikeRequest: TypeAlias = (
63 ChatCompletionRequest
64 | BatchChatCompletionRequest
65 | TokenizeChatRequest
66 | DerenderChatRequest
67 | DerenderChatStreamRequest
68 )
69
70 SpeechToTextRequest: TypeAlias = TranscriptionRequest | TranslationRequest
71
72 AnyRequest: TypeAlias = (
73 CompletionLikeRequest
74 | ChatLikeRequest
75 | SpeechToTextRequest
76 | ResponsesRequest
77 | GenerateRequest
78 )
79
80 AnyResponse: TypeAlias = (
81 CompletionResponse
82 | ChatCompletionResponse
83 | TranscriptionResponse
84 | TokenizeResponse
85 | GenerateResponse
86 )