File size: 866 Bytes
76db545
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"""GET /api/v1/health — model status and adapter availability."""
from __future__ import annotations

from fastapi import APIRouter, Depends, Request

from src.api.dependencies import get_adapter_manager
from src.api.schemas import HealthResponse
from src.engine.adapter_manager import AdapterManager

router = APIRouter()


@router.get("/health", response_model=HealthResponse)
async def health_check(
    request: Request,
    adapter_manager: AdapterManager = Depends(get_adapter_manager),
) -> HealthResponse:
    model_loaded = hasattr(request.app.state, "transcriber")
    return HealthResponse(
        status="ok" if model_loaded else "loading",
        model_loaded=model_loaded,
        active_adapter=adapter_manager.get_active(),
        adapters_available=adapter_manager.list_available(),
        adapters_loaded=adapter_manager.list_loaded(),
    )