feat: purge cascade observed_results, scripts GradientBoosting hors-Docker, delete_iris#214
Merged
Merged
Conversation
…Docker + delete_iris API : - DELETE /predictions/purge accepte older_than_days=0 (supprime tout, sans seuil) - Suppression en cascade des observed_results liés aux prédictions purgées - PurgeResponse : nouveau champ deleted_observed_results_count - Test test_purge_older_than_days_zero_returns_422 → test_purge_older_than_days_zero_is_valid Scripts documentation : - train_iris_GradientBoosting.py : aligné sur train_iris.py — dotenv, valeurs par défaut, DEBUG dump env, timing _ts(), MLFLOW_HTTP_REQUEST_TIMEOUT, résolution credentials MinIO, substitution hostname hors-Docker, log_metrics batché, infer_signature avec predict_proba - upload_iris_model_GradientBoosting.py : ajout dotenv - delete_iris.py : nouveau script de nettoyage complet (modèle + prédictions + ground truth) avec dry-run par défaut et flag --yes pour exécution réelle - send_ground_truth.py → send_ground_truth_iris.py (renommage) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DELETE /predictions/purgeaccepte désormaisolder_than_days=0et supprime en cascade les observed_results (ground truth) liés aux prédictions purgéestrain_iris_GradientBoosting.pyetupload_iris_model_GradientBoosting.pyalignés sur leurs homologues RandomForest pour fonctionner hors Dockerdelete_iris.py— script de nettoyage complet avec dry-runDétail des changements
API —
DELETE /predictions/purgeolder_than_days: contraintege=1→ge=0(0 = tout supprimer, sans seuil temporel)observed_resultsdont le couple(id_obs, model_name)correspond aux prédictions purgées sont supprimés avant les prédictionsPurgeResponse: nouveau champdeleted_observed_results_count(0 en dry_run, compte réel après suppression)linked_observed_results_countconservé pour la rétrocompatibilité (sert d'estimation en dry_run)Scripts documentation — GradientBoosting hors-Docker
train_iris_GradientBoosting.pyreçoit toutes les fonctionnalités detrain_iris.py:dotenv+load_dotenv(find_dotenv())pour charger le.envlocalos.environ.getau lieu deos.environ[...]qui crashait)DEBUGavec dump des variables d'environnement avant/après surcharge_ts()pour le timing de chaque étapeMLFLOW_HTTP_REQUEST_TIMEOUT=8pour éviter les blocages de 120 sAWS_*>MINIO_ROOT_*)_in_docker+ substitutionmlflow:→localhost:etminio:9000→localhost:9010log_metricsen un seul appel réseau (au lieu de N appels individuels)infer_signatureavecpredict_proba(signature float, évite le warning "integer column")logging.getLoggerupload_iris_model_GradientBoosting.py: ajoutdotenv.Nouveau script —
delete_iris.pyNettoyage complet d'un modèle en une commande :
DELETE /predictions/purge?older_than_days=0&dry_run=false(prédictions + ground truth en cascade)DELETE /models/{name}(toutes versions + MLflow runs + MinIO objects)Tests
test_purge_older_than_days_zero_returns_422→test_purge_older_than_days_zero_is_valid: vérifie le 200 et la présence du champdeleted_observed_results_countReviewer notes
observed_resultsse fait parDELETE … WHERE (id_obs, model_name) IN (…)avant celle des prédictions — pas de contrainte FK à gérer.deleted_observed_results_countvaut toujours 0 en dry_run (aucune suppression effectuée) ;linked_observed_results_countdonne l'estimation dans ce cas.linked_observed_results_countreste présent dansPurgeResponse.🤖 Generated with Claude Code