main
py 73 lines 2.18 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4
5 from typing import TYPE_CHECKING
6
7 from fastapi import FastAPI
8
9 if TYPE_CHECKING:
10 from argparse import Namespace
11
12 from starlette.datastructures import State
13
14 from vllm.engine.protocol import EngineClient
15 from vllm.entrypoints.serve.utils.request_logger import RequestLogger
16 from vllm.tasks import SupportedTask
17 else:
18 RequestLogger = object
19
20
21 def register_speech_to_text_api_routers(
22 app: FastAPI,
23 supported_tasks: tuple["SupportedTask", ...],
24 ):
25 if "realtime" in supported_tasks:
26 from .realtime.api_router import router as realtime_router
27
28 app.include_router(realtime_router)
29
30 if "transcription" in supported_tasks:
31 from .transcription.api_router import router as transcription_router
32
33 app.include_router(transcription_router)
34
35 from .translation.api_router import router as translation_router
36
37 app.include_router(translation_router)
38
39
40 def init_speech_to_text_state(
41 engine_client: "EngineClient",
42 state: "State",
43 args: "Namespace",
44 request_logger: RequestLogger | None,
45 supported_tasks: tuple["SupportedTask", ...],
46 ):
47 if "transcription" in supported_tasks:
48 from .transcription.serving import OpenAIServingTranscription
49
50 state.openai_serving_transcription = OpenAIServingTranscription(
51 engine_client,
52 state.openai_serving_models,
53 request_logger=request_logger,
54 enable_force_include_usage=args.enable_force_include_usage,
55 )
56
57 from .translation.serving import OpenAIServingTranslation
58
59 state.openai_serving_translation = OpenAIServingTranslation(
60 engine_client,
61 state.openai_serving_models,
62 request_logger=request_logger,
63 enable_force_include_usage=args.enable_force_include_usage,
64 )
65
66 if "realtime" in supported_tasks:
67 from .realtime.serving import OpenAIServingRealtime
68
69 state.openai_serving_realtime = OpenAIServingRealtime(
70 engine_client,
71 state.openai_serving_models,
72 request_logger=request_logger,
73 )