code: def make_study_config(
      objective: Union[Text, oracle_module.Objective],
      hyperparams: hp_module.HyperParameters,
  ) -> Dict[Text, Any]:
      """Generates Vizier study_config from keras_tuner configurations.
  
      Args:
          objective: String or `oracle_module.Objective`. If a string,
              the direction of the optimization (min or max) will be inferred.
          hyperparams: HyperParameters class instance. Can be used to override (or
              register in advance) hyperparameters in the search space.
  
      Returns:
          A dict that holds the study configuration.
      """
      study_config = {}
      # The default algorithm used by the Vizier.
      study_config["algorithm"] = "ALGORITHM_UNSPECIFIED"
      # If no implementation_config is set, automated early stopping will not be
      # run.
      study_config["automatedStoppingConfig"] = {
          "decayCurveStoppingConfig": {"useElapsedTime": True}
      }
  
      # Converts oracle_module.Objective to metrics.
      study_config["metrics"] = []
      for obj in format_objective(objective):
          study_config["metrics"].append(
              {"metric": obj.name, "goal": format_goal(obj.direction)}
          )
  
      # Converts hp_module.HyperParameters to parameters.
      study_config[
          "parameters"
      ] = _convert_hyperparams_to_vizier_params(hyperparams)
  
      return study_config
  
imports: from typing import Any, Dict, List, Optional, Text, Union
  from keras_tuner.engine import hyperparameters
  from keras_tuner.engine import metrics_tracking
  from keras_tuner.engine import oracle
  from keras_tuner.engine import trial
  import numpy
  from tensorboard.plugins.hparams import api
label_desc: Use image node_id 1 for calling a global function with example usage: make_study_config(objective, hyperparams) and returns: study_config