@@ -12,6 +12,7 @@ Modell-Artefakt- und Vorhersage-Schnittstelle.
|
||||
- Standard: `http://127.0.0.1:8000/ml`
|
||||
- Health: `/health`
|
||||
- Modelle: `/models`
|
||||
- Retraining: `/retrain`
|
||||
- Einzelvorhersage: `/predict`
|
||||
- Batchvorhersage: `/batch`
|
||||
|
||||
@@ -65,6 +66,35 @@ Einzelne Vorhersage für einen Sensor.
|
||||
}
|
||||
```
|
||||
|
||||
### `POST /ml/retrain`
|
||||
|
||||
Trainiert die Artefakt-Metadaten aus neuen Sensordaten. Existiert `modelId`
|
||||
bereits, wird das Artefakt atomisch ersetzt und beim nächsten Prozessstart aus
|
||||
dem Modellverzeichnis geladen.
|
||||
|
||||
**Request**
|
||||
```json
|
||||
{
|
||||
"modelId": "home-model",
|
||||
"samples": [
|
||||
{
|
||||
"sensor_id": "sensor.kitchen",
|
||||
"values": {"temperature": 21.0},
|
||||
"label": "occupied"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**Antwort**
|
||||
```json
|
||||
{
|
||||
"model_id": "home-model",
|
||||
"supported_sensors": ["sensor.kitchen"],
|
||||
"replaced": false
|
||||
}
|
||||
```
|
||||
|
||||
### `POST /ml/batch`
|
||||
|
||||
Batch-Vorhersage für mehrere Sensorwerte.
|
||||
@@ -114,11 +144,15 @@ Batch-Vorhersage für mehrere Sensorwerte.
|
||||
## Betrieb
|
||||
|
||||
Die produktive App lädt Artefakte aus `SILLYHOME_MODEL_STORE`. Neue Artefakte
|
||||
werden derzeit intern über `ModelRegistry.register(...)` registriert. Die
|
||||
Registry speichert validiertes JSON atomisch und lädt es beim Neustart.
|
||||
werden über `/ml/retrain`, `RetrainingService` oder direkt über
|
||||
`ModelRegistry.register(...)` registriert. Die Registry speichert validiertes
|
||||
JSON atomisch und lädt es beim Neustart. Die API sollte nur in einem
|
||||
vertrauenswürdigen Netz oder hinter einem authentifizierenden Reverse Proxy
|
||||
erreichbar sein.
|
||||
|
||||
## Verweise
|
||||
|
||||
- `app/ml/predictor.py`
|
||||
- `app/ml/retraining.py`
|
||||
- `app/ml/registry/model_registry.py`
|
||||
- `backend/routes/ml.py`
|
||||
|
||||
Reference in New Issue
Block a user