38 lines
890 B
Python
38 lines
890 B
Python
|
|
"""Schemas for health check and system information."""
|
||
|
|
from typing import Optional
|
||
|
|
|
||
|
|
from pydantic import BaseModel
|
||
|
|
|
||
|
|
|
||
|
|
class HealthResponse(BaseModel):
|
||
|
|
"""API health check response."""
|
||
|
|
status: str
|
||
|
|
version: str
|
||
|
|
uptime_seconds: float
|
||
|
|
message: str
|
||
|
|
|
||
|
|
|
||
|
|
class SystemInfo(BaseModel):
|
||
|
|
"""System information."""
|
||
|
|
status: str
|
||
|
|
version: str
|
||
|
|
uptime_seconds: float
|
||
|
|
cpu_usage_percent: float
|
||
|
|
memory_usage_percent: float
|
||
|
|
disk_usage_percent: float
|
||
|
|
gpu_available: bool
|
||
|
|
gpu_memory_mb: Optional[int] = None
|
||
|
|
gpu_memory_used_mb: Optional[int] = None
|
||
|
|
execution_providers: list
|
||
|
|
models_dir_size_mb: float
|
||
|
|
jobs_queue_length: int
|
||
|
|
|
||
|
|
|
||
|
|
class RequestStats(BaseModel):
|
||
|
|
"""API request statistics."""
|
||
|
|
total_requests: int
|
||
|
|
successful_requests: int
|
||
|
|
failed_requests: int
|
||
|
|
average_processing_time_seconds: float
|
||
|
|
total_images_processed: int
|