Source code for gigl.src.common.translators.model_eval_metrics_translator
import json
from pathlib import Path
from gigl.common import LocalUri
from gigl.src.common.types.model_eval_metrics import EvalMetricsCollection
[docs]
class EvalMetricsCollectionTranslator:
    @classmethod
[docs]
    def write_kfp_metrics_to_pipeline_metric_path(
        cls, eval_metrics: EvalMetricsCollection, path: LocalUri
    ):
        kfp_metrics_list = []
        for metric in eval_metrics.metrics.values():
            kfp_metrics_list.append(
                {
                    "name": metric.name,
                    "numberValue": f"{metric.value}",
                    # KFP api specific; v2 will deprecate this format (alternative is percentage in v1 - which v2 has removed)
                    "format": "RAW",
                }
            )
        metrics = {"metrics": kfp_metrics_list}
        Path(path.uri).parent.mkdir(parents=True, exist_ok=True)
        with open(path.uri, "w") as f:
            json.dump(metrics, f)