def _validate_model_platform_compatibility()

in dell_ai/models.py [0:0]


def _validate_model_platform_compatibility(client, model_id, platform_id, num_gpus):
    """
    Validate that the model and platform combination is valid and the GPU configuration is supported.

    Args:
        client: The Dell AI client
        model_id: The model ID
        platform_id: The platform SKU ID
        num_gpus: The number of GPUs to use

    Raises:
        ValidationError: If the platform is not supported or the GPU configuration is invalid
        ResourceNotFoundError: If the model is not found
    """
    model = get_model(client, model_id)

    # Check if the platform is supported
    if platform_id not in model.configs_deploy:
        supported_platforms = list(model.configs_deploy.keys())
        platform_list = ", ".join(supported_platforms)
        raise ValidationError(
            f"Platform {platform_id} is not supported for model {model_id}. Supported platforms: {platform_list}",
            parameter="platform_id",
            valid_values=supported_platforms,
        )

    # Validate the GPU configuration
    valid_configs = model.configs_deploy[platform_id]
    valid_gpus = {config.num_gpus for config in valid_configs}

    if num_gpus not in valid_gpus:
        gpu_list = ", ".join(str(g) for g in sorted(valid_gpus))
        raise ValidationError(
            f"Invalid number of GPUs ({num_gpus}) for model {model_id} on platform {platform_id}. Valid GPU counts: {gpu_list}",
            parameter="num_gpus",
            valid_values=sorted(valid_gpus),
            config_details={
                "model_id": model_id,
                "platform_id": platform_id,
                "valid_configs": valid_configs,
            },
        )