Source code for sagemaker.train.evaluate.constants

"""Constants for SageMaker Evaluation Module.

This module contains shared constants used across the evaluation module.
"""

import uuid
from typing import Optional

from enum import Enum


[docs] class EvalType(Enum): """Enumeration of supported evaluation types.""" BENCHMARK = "benchmark" CUSTOM_SCORER = "customscorer" LLM_AS_JUDGE = "llmasjudge"
# Pipeline naming convention _PIPELINE_NAME_PREFIX = "SagemakerEvaluation" def _get_eval_type_display_name(eval_type: EvalType) -> str: """Map eval type to display name for pipeline naming. Args: eval_type (EvalType): The evaluation type. Returns: str: The display name for the evaluation type. - BENCHMARK → "BenchmarkEvaluation" - CUSTOM_SCORER → "CustomScorerEvaluation" - LLM_AS_JUDGE → "LLMAJEvaluation" """ mapping = { EvalType.BENCHMARK: "BenchmarkEvaluation", EvalType.CUSTOM_SCORER: "CustomScorerEvaluation", EvalType.LLM_AS_JUDGE: "LLMAJEvaluation" } return mapping[eval_type] def _get_pipeline_name(eval_type: EvalType, unique_id: Optional[str] = None) -> str: """Generate pipeline name with pattern: SagemakerEvaluation-[evaluationType]-[uuid] The generated name follows the pattern: [a-zA-Z0-9](-*[a-zA-Z0-9]){0,255} Args: eval_type (EvalType): The evaluation type. unique_id (Optional[str]): Optional UUID. If not provided, generates a new one. Returns: str: The pipeline name (e.g., 'SagemakerEvaluation-BenchmarkEvaluation-abc123'). """ eval_type_name = _get_eval_type_display_name(eval_type) if unique_id is None: unique_id = str(uuid.uuid4()) return f"{_PIPELINE_NAME_PREFIX}-{eval_type_name}-{unique_id}" def _get_pipeline_name_prefix(eval_type: EvalType) -> str: """Get pipeline name prefix for searching existing pipelines. Args: eval_type (EvalType): The evaluation type. Returns: str: The pipeline name prefix (e.g., 'SagemakerEvaluation-BenchmarkEvaluation'). """ eval_type_name = _get_eval_type_display_name(eval_type) return f"{_PIPELINE_NAME_PREFIX}-{eval_type_name}" # Tag keys for pipeline execution classification _TAG_EVAL_TYPE_PREFIX = "sagemaker-pysdk" _TAG_EVALUATION = "sagemaker-pysdk-evaluation" _TAG_SAGEMAKER_MODEL_EVALUATION = "SagemakerModelEvaluation" def _get_eval_type_tag_key(eval_type: EvalType) -> str: """Get the tag key for a specific evaluation type. Args: eval_type (EvalType): The evaluation type. Returns: str: The tag key (e.g., 'sagemaker-pysdk-benchmark'). """ return f"{_TAG_EVAL_TYPE_PREFIX}-{eval_type.value}"