Features: - Fire detection (YOLOv10) - Helmet detection (YOLOv8) - Crowd detection (YOLOv8) - Smoking detection (YOLOv8) - Loitering detection (YOLOv8) Tech Stack: - Frontend: Vue 3 + Vite + Element Plus - Backend: FastAPI + WebSocket - Monorepo: pnpm workspace + Turbo - Docker support included
29 lines
905 B
Python
29 lines
905 B
Python
from fastapi import APIRouter
|
|
from models.schemas import ModelInfo
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/models", response_model=list[ModelInfo])
|
|
async def get_models():
|
|
from main import model_service
|
|
models = model_service.get_available_models()
|
|
return models
|
|
|
|
@router.get("/models/{model_id}", response_model=ModelInfo)
|
|
async def get_model(model_id: str):
|
|
from main import model_service
|
|
models = model_service.get_available_models()
|
|
for model in models:
|
|
if model['id'] == model_id:
|
|
return model
|
|
return None
|
|
|
|
@router.post("/models/{model_id}/load")
|
|
async def load_model(model_id: str):
|
|
from main import model_service
|
|
model = await model_service.load_model(model_id)
|
|
if model:
|
|
return {"success": True, "message": f"模型加载成功: {model_id}"}
|
|
else:
|
|
return {"success": False, "message": f"模型加载失败: {model_id}"}
|