gen_ai_hub.evaluations.utils.gen_utils module

gen_ai_hub.evaluations.utils.gen_utils.update_variable_mapping(variable_mapping: dict, prefix_key: str, variable_mapping_dict: dict) dict
gen_ai_hub.evaluations.utils.gen_utils.get_accumulated_config_data(evaluation_configs_data: List[_EvaluationConfigData]) _EvaluationConfigData
gen_ai_hub.evaluations.utils.gen_utils.set_model_details_from_run_configs(orch_config) Tuple[str, str] | None

Sets the model name and version from the run data if available. If not available, it returns None.

gen_ai_hub.evaluations.utils.gen_utils.create_model_versions_map_from_orch_configs(orchestration_configs_data: List[dict], error_collector: ValidationCollector) Dict[str, List[str]] | None
gen_ai_hub.evaluations.utils.gen_utils.parse_model_filter_list(param, error_collector: ValidationCollector) List

Parse and return model filter list from a param.

gen_ai_hub.evaluations.utils.gen_utils.build_model_versions_map(model_list) Dict[str, List[str]]

Builds a map of model names to their versions.

gen_ai_hub.evaluations.utils.gen_utils.create_model_versions_map_from_configuration_param_bindings(param_bindings, error_collector: ValidationCollector) Tuple[Dict[str, List[str]], str | None]
gen_ai_hub.evaluations.utils.gen_utils.create_model_versions_map_from_custom_metric_config(custom_metric_config_data) Dict[str, List[str]]
gen_ai_hub.evaluations.utils.gen_utils.select_model_details_randomly(orchestration_config_data: List[dict], error_collector: ValidationCollector) Tuple[str, str] | None

Selects at random, model name and version from the list of model names and versions provided by the users run data.

gen_ai_hub.evaluations.utils.gen_utils.update_test_orch_config(model_name, model_version, error_collector: ValidationCollector) dict | None
gen_ai_hub.evaluations.utils.gen_utils.has_filter_key(orch_config: dict) bool

Check if the ‘filtering’ key is present in the orchestration config.

Parameters:

orch_config (dict) – Orchestration configuration dictionary.

Returns:

True if filtering key is present, False otherwise.

Return type:

bool

gen_ai_hub.evaluations.utils.gen_utils.get_filter_config(orch_config: dict) dict

Extract the filtering configuration from the orchestration config.

Parameters:

orch_config (dict) – Orchestration configuration dictionary.

Returns:

Filtering configuration dictionary, or empty dict if not present.

Return type:

dict

gen_ai_hub.evaluations.utils.gen_utils.check_if_content_filter_provider_supported(orch_config: dict, error_collector: ValidationCollector) bool

Validates if all filters in the filtering module configuration are of supported types.

Parameters:
  • orch_config (dict) – Orchestration configuration dictionary.

  • error_collector (ValidationCollector) – ValidationCollector instance for collecting validation errors.

Returns:

True if all filters are supported or no filtering is configured, False otherwise.

Return type:

bool

gen_ai_hub.evaluations.utils.gen_utils.remove_filter_metrics_if_provider_not_supported(orchestration_config_data: List[dict], metrics: List[str], error_collector: ValidationCollector) None

Removes content filter-related metric IDs from the metrics list if the content filter provider is not supported for any of the runs in orchestration_config_data.

gen_ai_hub.evaluations.utils.gen_utils.create_custom_metric_name(custom_metric_config: dict, error_collector: ValidationCollector) str

Creates a custom metric name based on the provided custom metric configuration.

Parameters:
  • custom_metric_config – Dictionary containing metric configuration.

  • error_collector – ValidationCollector instance for collecting validation errors.

Returns:

A string representing the custom metric name.

Raises:

ValidationError – If required fields are missing or invalid.

gen_ai_hub.evaluations.utils.gen_utils.validate_metric_name(metric: str, all_supported_metrics: List, error_collector: ValidationCollector) None

Validates if metrics name is not empty and the value actually exists in the list of supported metrics

gen_ai_hub.evaluations.utils.gen_utils.count_user_prompts_from_template_list(template_list) int
gen_ai_hub.evaluations.utils.gen_utils.get_template_list_from_orch_config(orch_config) List
gen_ai_hub.evaluations.utils.gen_utils.validate_prompts_in_templating_module(orchestration_config_data: List[dict], metric: str, error_collector: ValidationCollector) None

Checks whether the templating config provided in the Orchestration Config has exactly one user prompt

gen_ai_hub.evaluations.utils.gen_utils.get_custom_metric_ids_from_input(custom_metric_config_data: List[dict], error_collector: ValidationCollector) list[str]

Retrieve custom metric ids from the file data provided by the user.

Parameters:
  • custom_metric_config_data (List[dict]) – List of dictionaries containing custom metric definitions.

  • error_collector (ValidationCollector) – ValidationCollector instance for collecting validation errors.

Returns:

List of custom metric ids.

Return type:

list[str]

gen_ai_hub.evaluations.utils.gen_utils.check_if_metric_is_defined(metrics: List[str], metric_templates: List[dict], error_collector: ValidationCollector) None
gen_ai_hub.evaluations.utils.gen_utils.is_value_in_json(value, name, data: dict[str, str]) bool

Check if a value matches a name or exists in a mapping dictionary.

Parameters:
  • value (Any) – The value to search for.

  • name (str) – The name to compare against.

  • data (dict[str, str]) – Dictionary to search in (keys or values).

Returns:

True if value matches name or is found in data, False otherwise.

Return type:

bool

gen_ai_hub.evaluations.utils.gen_utils.validate_metrics(metrics: List[str], metric_templates: List[dict], orchestration_config_data: List[dict], error_collector: ValidationCollector) None

Validates if metrics list is empty or metric name is invalid

gen_ai_hub.evaluations.utils.gen_utils.list_prompt_variables(format_string: str) list[str]

Get all fields (parameters) of the form {{ ?param_name }} from the template. Optionally return the raw field names without stripping spaces and ‘?’.

gen_ai_hub.evaluations.utils.gen_utils.extract_dataset_columns(template_variables) List[str]

Extracts column names from the template variables provided. If the value is a list, extracts column names from the first rows; else, extracts from the template_variables directly.

gen_ai_hub.evaluations.utils.gen_utils.get_prompt_variables_from_orch_config(orch_config: dict) Set[str]
gen_ai_hub.evaluations.utils.gen_utils.get_grounding_config_from_orch_config(orch_config) dict

Extracts the grounding configuration from the orchestration configuration. :param orch_config: Orchestration configuration. :type orch_config: dict

Returns:

Grounding configuration if present, otherwise an empty dictionary.

Return type:

dict

gen_ai_hub.evaluations.utils.gen_utils.get_grounding_output_param_key(orch_config: dict) str

Determines the correct key to extract the grounding output parameter based on the API version. :param orch_config: Orchestration configuration. :type orch_config: dict

Returns:

The key to extract the grounding output parameter.

Return type:

str

gen_ai_hub.evaluations.utils.gen_utils.get_defaults(orchestration_configuration: dict) dict

Returns the default field from the orchestration configuration.

gen_ai_hub.evaluations.utils.gen_utils.get_mapped_value_if_exists(key, mapping_keys, variable_mapping, dataset_columns) str

Gets the first valid mapped value from the list of keys if it exists in variable mapping, else returns the first key

gen_ai_hub.evaluations.utils.gen_utils.validate_variable_mapping_of_prompts(orchestration_config_data: list, dataset_data: List[dict], variable_mapping: dict, error_collector: ValidationCollector) None

Validates the variable mapping for prompts with a zero-tolerance failure threshold.

Parameters:
  • orchestration_config_data (list) – Orchestration run configuration

  • dataset_data (dict) – Dataset rows to validate

  • variable_mapping (dict) – The variable mapping provided in the input configuration.

Raises:

ValidationError – If any prompts variable mapping is invalid or does not exist in the dataset.

gen_ai_hub.evaluations.utils.gen_utils.validate_all_metrics_mapping(variable_mapping: dict, dataset_columns: list, error_collector: ValidationCollector) None

Validates the variable mapping for ‘all_metrics’ with a zero-tolerance failure threshold.

Parameters:
  • variable_mapping (dict) – The variable mapping provided in the input configuration.

  • dataset_columns (list) – List of column names in the dataset.

Raises:

ValidationError – If any ‘all_metrics’ mapping is invalid or the direct column does not exist in the dataset.

gen_ai_hub.evaluations.utils.gen_utils.extract_metrics_variables(metric_templates, metric_name: str = None) Set

Extracts unique set of variables from the ‘variables’ key.

gen_ai_hub.evaluations.utils.gen_utils.validate_individual_metrics(metrics: list[str], variable_mapping: dict, dataset_columns: list, metric_dependent_variables: set, error_collector: ValidationCollector) None

Validates the variable mapping for any metric mapping with a zero-tolerance failure threshold.

Parameters:
  • metrics (list) – List of metrics provided in the input configuration.

  • variable_mapping (dict) – The variable mapping provided in the input configuration.

  • dataset_columns (list) – List of column names in the dataset.

  • metric_dependent_variables (set) – Set of dependent variables for all metrics

Raises:

ValidationError – If any metric mapping is invalid or the direct column does not exist in the dataset.

gen_ai_hub.evaluations.utils.gen_utils.validate_variable_mapping_of_metrics(metrics: list[str], metric_templates: list[dict], dataset_data: List[dict], variable_mapping: dict, error_collector: ValidationCollector) None

Validates variable mapping of metrics with tolerance to zero failure threshold

Parameters:
  • metrics – List of metrics provided in the input config

  • metric_templates (list[dict]) – Metric templates information resolved from Metric Management Service

  • dataset_data – Dataset rows to validate

  • variable_mapping – variable mapping provided in input config

Returns:

Validates and throws validation error even if one variable mapping related to metrics is invalid.

gen_ai_hub.evaluations.utils.gen_utils.flatten_prompt_configuration(prompt_config: dict) str

Flatten a nested prompt configuration dictionary into a readable string.

gen_ai_hub.evaluations.utils.gen_utils.validate_individual_custom_metrics(variable_mapping: dict, dataset_columns: list, custom_metric_ids: list, custom_metric_variables: set, error_collector: ValidationCollector) None

Validates the variable mapping for any metric mapping with a zero-tolerance failure threshold.

gen_ai_hub.evaluations.utils.gen_utils.handle_missing_dependent_variables_in_dataset(dataset_data: List[dict], metrics: list[str], metric_templates: list[dict], variable_mapping: dict, error_collector: ValidationCollector) None

validates whether all the dependent variables for the metrics list are either directly present as columns in dataset or a variable mapping is provided :param dataset_data: Dataset rows to validate (list of row dictionaries) :type dataset_data: List[dict] :param metrics: List of metrics provided in the input configuration. :type metrics: list[str] :param metric_templates: Metric templates information resolved from Metric Management Service :type metric_templates: list[dict] :param variable_mapping: The variable mapping provided in the input configuration. :type variable_mapping: dict

Raises:

ValidationError – If any dependent variable is missing in the dataset and the variable mapping is invalid for that metric.

gen_ai_hub.evaluations.utils.gen_utils.populate_dataset_data_if_data_missing(dataset_data: list, variable_mapped_key, error_collector: ValidationCollector) None

Validates and Populates the dataset_data with missing data fields if golden truth is present and throws error if dataset is partially filled

gen_ai_hub.evaluations.utils.gen_utils.populate_dataset_data_if_single_schema_provided(dataset_data, variable_mapping, collector) None

Populates the dataset_data with missing json schema column entries across rows of dataset_data

gen_ai_hub.evaluations.utils.gen_utils.handle_json_schema_match(metrics: list[str], dataset_data: list, variable_mapping: dict, error_collector: ValidationCollector) None
gen_ai_hub.evaluations.utils.gen_utils.validate_language_code_and_data_population(dataset_data: list, variable_mapping: dict, error_collector: ValidationCollector) None

Populates the dataset_data with missing language column entries across rows of dataset_data

gen_ai_hub.evaluations.utils.gen_utils.handle_language_match(metrics: list, dataset_data: list, variable_mapping: dict, error_collector: ValidationCollector) None
gen_ai_hub.evaluations.utils.gen_utils.populate_dataset_data_if_single_reference_provided(dataset_data: List[dict], variable_mapping: dict, collector) None
Populates the dataset_data with missing reference column entries across rows of

dataset_data for only all metrics case where a golden reference is present

Parameters:
  • dataset_data (List[dict]) – Dataset rows to validate (list of row dictionaries)

  • variable_mapping (dict) – The variable mapping provided in the input configuration.

gen_ai_hub.evaluations.utils.gen_utils.populate_dataset_data_if_individual_metric_reference_provided(dataset_data: List[dict], variable_mapping: dict, metrics: list, error_collector: ValidationCollector) None

populates reference value across all rows of dataset_data if individual metric reference is provided and is different than all metrics reference provided. This population happens if the provided reference is a golden instance

Parameters:
  • dataset_data (List[dict]) – Dataset rows to validate (list of row dictionaries)

  • variable_mapping (dict) – The variable mapping provided in the input configuration.

  • metrics (list) – List of metrics provided in the input configuration.

gen_ai_hub.evaluations.utils.gen_utils.handle_reference_missing_rows(dataset_data: List[dict], variable_mapping: dict, metrics: list, error_collector: ValidationCollector) None

validates whether the reference columns in the rows are missing in the dataset for all metrics and for each individual metrics

Parameters:
  • dataset_data (List[dict]) – Dataset rows to validate (list of row dictionaries)

  • variable_mapping (dict) – The variable mapping provided in the input configuration.

  • metrics (list) – List of metrics provided in the input configuration.

Raises:

ValidationError – If any required variable mapping is invalid or the default column does not exist in the dataset.

gen_ai_hub.evaluations.utils.gen_utils.update_artifact_dict(artifact_reference: ArtifactSource, artifact_dict_count: dict) None
gen_ai_hub.evaluations.utils.gen_utils.resolve_orchestration_config_v2(template_data: List[PromptTemplate], llm: LLMModelDetails) dict