from fastapi import APIRouter, HTTPException, Query from typing import Optional from datetime import datetime from function.system_monitor import SystemMonitor router = APIRouter() system_monitor = SystemMonitor() @router.get("/system/resources") async def get_system_resources(): """获取系统资源使用情况""" result = system_monitor.get_system_resources() if result['status'] == 'error': raise HTTPException(status_code=500, detail=result['message']) return result @router.get("/system/history") async def get_training_history( page: int = Query(1, ge=1), page_size: int = Query(10, ge=1, le=100), start_time: Optional[str] = None, end_time: Optional[str] = None, status: Optional[str] = None, experiment_name: Optional[str] = None ): """获取训练历史记录""" result = system_monitor.get_training_history( page=page, page_size=page_size, start_time=start_time, end_time=end_time, status=status, experiment_name=experiment_name ) if result['status'] == 'error': raise HTTPException(status_code=500, detail=result['message']) return result @router.get("/system/logs") async def get_system_logs( level: Optional[str] = None, start_time: Optional[str] = None, end_time: Optional[str] = None, module: Optional[str] = None, page: int = Query(1, ge=1), page_size: int = Query(20, ge=1, le=100) ): """获取系统日志""" result = system_monitor.get_system_logs( level=level, start_time=start_time, end_time=end_time, module=module, page=page, page_size=page_size ) if result['status'] == 'error': raise HTTPException(status_code=500, detail=result['message']) return result