1.7 KiB
1.7 KiB
Refactor Pydantic API Models
Summary
Cleans up and restructures the Pydantic models for the training and model management APIs to reduce redundancy, improve naming clarity, and align with the frontend architecture.
Training Models (studio/backend/models/training.py)
| Before | After | Change |
|---|---|---|
TrainingStartResponse |
TrainingJobResponse |
Rename - clearer that it represents a created job |
TrainingStatusResponse |
TrainingStatus |
Rename + add phase field with explicit pipeline stages |
TrainingProgressResponse |
TrainingProgress |
Rename + add epoch, elapsed_seconds, eta_seconds |
TrainingMetricsResponse |
— | Removed - frontend stores history in IndexedDB |
Key improvements:
TrainingStatusunifies status polling and streaming with explicitphaseliterals:idle,loading_model,loading_dataset,configuring,training,completed,error,stopped- Renamed
is_active→is_training_runningfor clarity TrainingProgressnow includes timing info (elapsed_seconds,eta_seconds) for better UX
Model Management (studio/backend/models/models.py)
| Before | After | Change |
|---|---|---|
ModelSearchRequest |
— | Removed - search handled via query params |
ModelSearchResponse |
— | Removed |
ModelListResponse |
— | Removed |
ModelInfo |
— | Removed - redundant with ModelDetails |
ModelConfigResponse |
ModelDetails |
Rename |
Remaining models: ModelDetails, LoRAInfo, LoRAScanResponse
Breaking Changes
- All renamed/removed models will require updates in any code referencing them
- Frontend TypeScript types should be regenerated