code: def _get_model_params(self, model_type, seed, params_type="random"):
      model_info = AlgorithmsRegistry.registry[self._ml_task][
          model_type
      ]
  
      model_params = None
      if params_type == "default":
          model_params = model_info["default_params"]
          model_params["seed"] = seed
  
      else:
          model_params = RandomParameters.get(
              model_info["params"], seed + self._seed
          )
      if model_params is None:
          return None
  
      # set eval metric
      if model_info["class"].algorithm_short_name == "Xgboost":
          model_params["eval_metric"] = xgboost_eval_metric(
              self._ml_task, self._eval_metric
          )
      if model_info["class"].algorithm_short_name == "LightGBM":
          metric, custom_metric = lightgbm_eval_metric(
              self._ml_task, self._eval_metric
          )
          model_params["metric"] = metric
          model_params["custom_eval_metric_name"] = custom_metric
      if model_info["class"].algorithm_short_name == "CatBoost":
          model_params["eval_metric"] = catboost_eval_metric(
              self._ml_task, self._eval_metric
          )
      elif model_info["class"].algorithm_short_name in [
          "Random Forest",
          "Extra Trees",
      ]:
          model_params["eval_metric_name"] = self._eval_metric
          model_params["ml_task"] = self._ml_task
  
      required_preprocessing = model_info["required_preprocessing"]
      model_additional = model_info["additional"]
      preprocessing_params = PreprocessingTuner.get(
          required_preprocessing, self._data_info, self._ml_task
      )
  
      model_params = {
          "additional": model_additional,
          "preprocessing": preprocessing_params,
          "validation_strategy": self._validation_strategy,
          "learner": {
              "model_type": model_info["class"].algorithm_short_name,
              "ml_task": self._ml_task,
              "n_jobs": self._n_jobs,
              **model_params,
          },
          "automl_random_state": self._seed,
      }
  
      if self._data_info.get("num_class") is not None:
          model_params["learner"]["num_class"] = self._data_info.get(
              "num_class"
          )
  
      model_params["ml_task"] = self._ml_task
      model_params["explain_level"] = self._explain_level
  
      if self._fairness_metric is not None:
          model_params["fairness_metric"] = self._fairness_metric
          model_params["fairness_threshold"] = self._fairness_threshold
          model_params["privileged_groups"] = self._privileged_groups
          model_params[
              "underprivileged_groups"
          ] = self._underprivileged_groups
  
      return model_params
  
imports: import copy
  import json
  import logging
  import os
  import numpy
  import pandas
  from sklearn.preprocessing import OneHotEncoder
  from supervised.algorithms.catboost import catboost_eval_metric
  from supervised.algorithms.lightgbm import lightgbm_eval_metric
  from supervised.algorithms.registry import BINARY_CLASSIFICATION, MULTICLASS_CLASSIFICATION, REGRESSION, AlgorithmsRegistry
  from supervised.algorithms.xgboost import xgboost_eval_metric
  from supervised.preprocessing.label_encoder import LabelEncoder
  from supervised.preprocessing.preprocessing_categorical import PreprocessingCategorical
  from supervised.tuner.hill_climbing import HillClimbing
  from supervised.tuner.preprocessing_tuner import PreprocessingTuner
  from supervised.tuner.random_parameters import RandomParameters
  from supervised.utils.config import LOG_LEVEL
  from supervised.utils.utils import dump_data, load_data
label_desc: Use image node_id 31 for calling the MljarTuner obj's underlying member method code with example usage: obj._get_model_params(model_type, seed, params_type) and returns: model_params, None