mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
* Self-hosted gpu api * Refactor self-hosted api * Rename model api tests * Use lifespan instead of startup event * Fix self hosted imports * Add newlines * Add response models * Move gpu dir to the root * Add project description * Refactor lifespan * Update env var names for model api tests * Preload diarizarion service * Refactor uploaded file paths
31 lines
937 B
Python
31 lines
937 B
Python
from contextlib import asynccontextmanager
|
|
|
|
from fastapi import FastAPI
|
|
|
|
from .routers.diarization import router as diarization_router
|
|
from .routers.transcription import router as transcription_router
|
|
from .routers.translation import router as translation_router
|
|
from .services.transcriber import WhisperService
|
|
from .services.diarizer import PyannoteDiarizationService
|
|
from .utils import ensure_dirs
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: FastAPI):
|
|
ensure_dirs()
|
|
whisper_service = WhisperService()
|
|
whisper_service.load()
|
|
app.state.whisper = whisper_service
|
|
diarization_service = PyannoteDiarizationService()
|
|
diarization_service.load()
|
|
app.state.diarizer = diarization_service
|
|
yield
|
|
|
|
|
|
def create_app() -> FastAPI:
|
|
app = FastAPI(lifespan=lifespan)
|
|
app.include_router(transcription_router)
|
|
app.include_router(translation_router)
|
|
app.include_router(diarization_router)
|
|
return app
|