presentercoach / apps /api /src /app /routes /settings.py
nathycodes's picture
Deploy Tech Presenter Coach
ec17af3
Raw History Blame Contribute Delete
1.63 kB
from fastapi import APIRouter, Depends
from fastapi import HTTPException
from app import models, schemas, transcription
from app.auth import get_current_user
from app.local_inference import check_engine, get_all_engine_statuses
router = APIRouter(prefix="/settings", tags=["settings"])
@router.get("/transcription", response_model=schemas.TranscriptionSettingsOut)
def get_transcription_settings(current_user: models.User = Depends(get_current_user)):
return {
"default_backend": transcription.get_default_transcription_backend(),
"backends": transcription.get_transcription_backends(),
"text_inference_engines": get_all_engine_statuses(),
}
@router.post("/transcription/models/download", response_model=schemas.TranscriptionModelOut)
def download_transcription_model(
payload: schemas.TranscriptionModelDownloadRequest,
current_user: models.User = Depends(get_current_user),
):
try:
return transcription.download_transcription_model(payload.backend, payload.model)
except ValueError as exc:
raise HTTPException(status_code=400, detail=str(exc)) from exc
except RuntimeError as exc:
raise HTTPException(status_code=503, detail=str(exc)) from exc
@router.post("/local-inference/check", response_model=schemas.InferenceEngineStatusOut)
def check_local_inference(
payload: schemas.InferenceEngineCheckRequest,
current_user: models.User = Depends(get_current_user),
):
try:
return check_engine(payload.engine_id, payload.base_url)
except ValueError as exc:
raise HTTPException(status_code=400, detail=str(exc)) from exc