Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from typing import Any | |
| from datapilot.config import Settings | |
| def log_to_mlflow(payload: dict[str, Any], settings: Settings) -> bool: | |
| """Record a run when MLflow is enabled; local demos remain dependency-light.""" | |
| if not settings.enable_mlflow: | |
| return False | |
| try: | |
| import mlflow | |
| mlflow.set_tracking_uri(settings.mlflow_tracking_uri) | |
| mlflow.set_experiment("datapilot-ai") | |
| best = payload["model_results"][0] | |
| with mlflow.start_run(run_name=payload["run_id"]): | |
| mlflow.log_params( | |
| { | |
| "dataset": payload["dataset_name"], | |
| "task_type": payload["profile"]["task_type"], | |
| "target": payload["profile"]["target"], | |
| "selected_model": payload["best_model"], | |
| } | |
| ) | |
| mlflow.log_metrics({key: float(value) for key, value in best["metrics"].items()}) | |
| return True | |
| except Exception: | |
| return False | |