Initial commit: Video detection platform with YOLO models
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
This commit is contained in:
28
apps/server/api/models.py
Normal file
28
apps/server/api/models.py
Normal file
@@ -0,0 +1,28 @@
|
||||
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}"}
|
||||
Reference in New Issue
Block a user