Spaces:
Configuration error
Configuration error
Fedir Zadniprovskyi
commited on
Commit
·
7785332
1
Parent(s):
a5d79bf
feat: add API tags
Browse files
src/faster_whisper_server/main.py
CHANGED
@@ -12,12 +12,12 @@ from fastapi.middleware.cors import CORSMiddleware
|
|
12 |
|
13 |
from faster_whisper_server.dependencies import ApiKeyDependency, get_config, get_model_manager
|
14 |
from faster_whisper_server.logger import setup_logger
|
15 |
-
from faster_whisper_server.routers.list_models import (
|
16 |
-
router as list_models_router,
|
17 |
-
)
|
18 |
from faster_whisper_server.routers.misc import (
|
19 |
router as misc_router,
|
20 |
)
|
|
|
|
|
|
|
21 |
from faster_whisper_server.routers.stt import (
|
22 |
router as stt_router,
|
23 |
)
|
@@ -25,6 +25,19 @@ from faster_whisper_server.routers.stt import (
|
|
25 |
if TYPE_CHECKING:
|
26 |
from collections.abc import AsyncGenerator
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
def create_app() -> FastAPI:
|
30 |
config = get_config() # HACK
|
@@ -53,10 +66,10 @@ def create_app() -> FastAPI:
|
|
53 |
if config.api_key is not None:
|
54 |
dependencies.append(ApiKeyDependency)
|
55 |
|
56 |
-
app = FastAPI(lifespan=lifespan, dependencies=dependencies)
|
57 |
|
58 |
app.include_router(stt_router)
|
59 |
-
app.include_router(
|
60 |
app.include_router(misc_router)
|
61 |
if speech_router is not None:
|
62 |
app.include_router(speech_router)
|
|
|
12 |
|
13 |
from faster_whisper_server.dependencies import ApiKeyDependency, get_config, get_model_manager
|
14 |
from faster_whisper_server.logger import setup_logger
|
|
|
|
|
|
|
15 |
from faster_whisper_server.routers.misc import (
|
16 |
router as misc_router,
|
17 |
)
|
18 |
+
from faster_whisper_server.routers.models import (
|
19 |
+
router as models_router,
|
20 |
+
)
|
21 |
from faster_whisper_server.routers.stt import (
|
22 |
router as stt_router,
|
23 |
)
|
|
|
25 |
if TYPE_CHECKING:
|
26 |
from collections.abc import AsyncGenerator
|
27 |
|
28 |
+
# https://swagger.io/docs/specification/v3_0/grouping-operations-with-tags/
|
29 |
+
# https://fastapi.tiangolo.com/tutorial/metadata/#metadata-for-tags
|
30 |
+
TAGS_METADATA = [
|
31 |
+
{"name": "automatic-speech-recognition"},
|
32 |
+
{"name": "speech-to-text"},
|
33 |
+
{"name": "models"},
|
34 |
+
{"name": "diagnostic"},
|
35 |
+
{
|
36 |
+
"name": "experimental",
|
37 |
+
"description": "Not meant for public use yet. May change or be removed at any time.",
|
38 |
+
},
|
39 |
+
]
|
40 |
+
|
41 |
|
42 |
def create_app() -> FastAPI:
|
43 |
config = get_config() # HACK
|
|
|
66 |
if config.api_key is not None:
|
67 |
dependencies.append(ApiKeyDependency)
|
68 |
|
69 |
+
app = FastAPI(lifespan=lifespan, dependencies=dependencies, openapi_tags=TAGS_METADATA)
|
70 |
|
71 |
app.include_router(stt_router)
|
72 |
+
app.include_router(models_router)
|
73 |
app.include_router(misc_router)
|
74 |
if speech_router is not None:
|
75 |
app.include_router(speech_router)
|
src/faster_whisper_server/routers/misc.py
CHANGED
@@ -13,7 +13,7 @@ from faster_whisper_server.dependencies import ModelManagerDependency # noqa: T
|
|
13 |
router = APIRouter()
|
14 |
|
15 |
|
16 |
-
@router.get("/health")
|
17 |
def health() -> Response:
|
18 |
return Response(status_code=200, content="OK")
|
19 |
|
|
|
13 |
router = APIRouter()
|
14 |
|
15 |
|
16 |
+
@router.get("/health", tags=["diagnostic"])
|
17 |
def health() -> Response:
|
18 |
return Response(status_code=200, content="OK")
|
19 |
|
src/faster_whisper_server/routers/{list_models.py → models.py}
RENAMED
@@ -18,7 +18,7 @@ from faster_whisper_server.hf_utils import list_whisper_models
|
|
18 |
if TYPE_CHECKING:
|
19 |
from huggingface_hub.hf_api import ModelInfo
|
20 |
|
21 |
-
router = APIRouter()
|
22 |
|
23 |
|
24 |
@router.get("/v1/models")
|
|
|
18 |
if TYPE_CHECKING:
|
19 |
from huggingface_hub.hf_api import ModelInfo
|
20 |
|
21 |
+
router = APIRouter(tags=["models"])
|
22 |
|
23 |
|
24 |
@router.get("/v1/models")
|
src/faster_whisper_server/routers/speech.py
CHANGED
@@ -43,7 +43,7 @@ MAX_SAMPLE_RATE = 48000
|
|
43 |
|
44 |
logger = logging.getLogger(__name__)
|
45 |
|
46 |
-
router = APIRouter()
|
47 |
|
48 |
|
49 |
# aip 'Write a function `resample_audio` which would take in RAW PCM 16-bit signed, little-endian audio data represented as bytes (`audio_bytes`) and resample it (either downsample or upsample) from `sample_rate` to `target_sample_rate` using numpy' # noqa: E501
|
|
|
43 |
|
44 |
logger = logging.getLogger(__name__)
|
45 |
|
46 |
+
router = APIRouter(tags=["speech-to-text"])
|
47 |
|
48 |
|
49 |
# aip 'Write a function `resample_audio` which would take in RAW PCM 16-bit signed, little-endian audio data represented as bytes (`audio_bytes`) and resample it (either downsample or upsample) from `sample_rate` to `target_sample_rate` using numpy' # noqa: E501
|
src/faster_whisper_server/routers/stt.py
CHANGED
@@ -55,7 +55,7 @@ if TYPE_CHECKING:
|
|
55 |
|
56 |
logger = logging.getLogger(__name__)
|
57 |
|
58 |
-
router = APIRouter()
|
59 |
|
60 |
|
61 |
# TODO: test async vs sync performance
|
|
|
55 |
|
56 |
logger = logging.getLogger(__name__)
|
57 |
|
58 |
+
router = APIRouter(tags=["automatic-speech-recognition"])
|
59 |
|
60 |
|
61 |
# TODO: test async vs sync performance
|