def validate_input_params(self, input_params: Any, parameters: Dict[str, Any]) -> None:
        """
        Validate passed parameters against the function's input parameters definition.

        Args:
            input_params: The function's input parameters definition. It should be
                of type InputParams in unitycatalog, or FunctionParameterInfos in databricks.
            parameters: The parameters to validate.
        """
        parameters = deepcopy(parameters)
        if input_params and input_params.parameters:
            invalid_params: Dict[str, str] = {}
            for param in input_params.parameters:
                if param.name in parameters:
                    try:
                        self._validate_param_type(parameters[param.name], param)
                    except ValueError as e:
                        invalid_params[param.name] = str(e)
                elif param.parameter_default is None:
                    raise ValueError(f"Parameter {param.name} is required but not provided.")
            if invalid_params:
                raise ValueError(f"Invalid parameters provided: {invalid_params}.")
            if extra_params := parameters.keys() - {
                param.name for param in input_params.parameters
            }:
                raise ValueError(
                    f"Extra parameters provided that are not defined in the function's input parameters: {extra_params}."
                )
        elif parameters:
            raise ValueError(
                f"Function does not have input parameters, but parameters {parameters} were provided."
            )

        Validate passed parameters against the function's input parameters definition.

        Args:
            input_params: The function's input parameters definition. It should be
                of type InputParams in unitycatalog, or FunctionParameterInfos in databricks.
            parameters: The parameters to validate.
        
ai/core/src/unitycatalog/ai/core/base.py