DeepFakeDetectorBackend / app /api /routes_models.py
lukhsaankumar's picture
Deploy DeepFake Detector API - 2026-03-07 09:12:00
df4a21a
"""
Model listing routes.
"""
from fastapi import APIRouter
from app.core.logging import get_logger
from app.schemas.models import ModelsListResponse, ModelInfo
from app.services.model_registry import get_model_registry
logger = get_logger(__name__)
router = APIRouter(tags=["models"])
@router.get(
"/models",
response_model=ModelsListResponse,
summary="List loaded models",
description="Get information about all loaded models including fusion and submodels"
)
async def list_models() -> ModelsListResponse:
"""
List all loaded models.
Returns information about the fusion model and all submodels,
including their Hugging Face repository IDs and configurations.
"""
registry = get_model_registry()
models = registry.list_models()
fusion_info = None
submodels_info = []
for model in models:
model_info = ModelInfo(
repo_id=model["repo_id"],
name=model["name"],
model_type=model["model_type"],
config=model.get("config")
)
if model["model_type"] == "fusion":
fusion_info = model_info
else:
submodels_info.append(model_info)
return ModelsListResponse(
fusion=fusion_info,
submodels=submodels_info,
total_count=len(models)
)