code: def create(self, target, args=None, **kwargs):
      # TODO change BaseMLEngine api?
      if "using" in args:
          args = args["using"]
  
      args["target"] = target
  
      model_name = args["model_name"]
      hf_model_storage_path = self.engine_storage.folder_get(
          model_name
      )  # real
  
      if args["task"] == "translation":
          args[
              "task_proper"
          ] = f"translation_{args['lang_input']}_to_{args['lang_output']}"
      else:
          args["task_proper"] = args["task"]
  
      logger.debug(f"Checking file system for {model_name}...")
  
      ####
      # Check if pipeline has already been downloaded
      try:
          pipeline = transformers.pipeline(
              task=args["task_proper"],
              model=hf_model_storage_path,
              tokenizer=hf_model_storage_path,
          )
          logger.debug(f"Model already downloaded!")
      ####
      # Otherwise download it
      except OSError:
          try:
              logger.debug(f"Downloading {model_name}...")
              pipeline = transformers.pipeline(
                  task=args["task_proper"], model=model_name
              )
  
              pipeline.save_pretrained(hf_model_storage_path)
  
              logger.debug(f"Saved to {hf_model_storage_path}")
          except Exception:
              raise Exception(
                  "Error while downloading and setting up the model. Please try a different model. We're working on expanding the list of supported models, so we would appreciate it if you let us know about this in our community slack (https://mindsdb.com/joincommunity)."
              )  # noqa
      ####
  
      if "max_length" in args:
          pass
      elif (
          "max_position_embeddings"
          in pipeline.model.config.to_dict().keys()
      ):
          args[
              "max_length"
          ] = pipeline.model.config.max_position_embeddings
      elif "max_length" in pipeline.model.config.to_dict().keys():
          args["max_length"] = pipeline.model.config.max_length
      else:
          logger.debug("No max_length found!")
  
      labels_default = pipeline.model.config.id2label
      labels_map = {}
      if "labels" in args:
          for num in labels_default.keys():
              labels_map[labels_default[num]] = args["labels"][num]
          args["labels_map"] = labels_map
      else:
          for num in labels_default.keys():
              labels_map[labels_default[num]] = labels_default[num]
          args["labels_map"] = labels_map
  
      ###### store and persist in model folder
      self.model_storage.json_set("args", args)
  
      ###### persist changes to handler folder
      self.engine_storage.folder_sync(model_name)
  
file_path: mindsdb/mindsdb/integrations/handlers/huggingface_handler/huggingface_handler.py
imports: from typing import Dict, Optional
  import pandas
  import transformers
  from huggingface_hub import HfApi
  from mindsdb.integrations.handlers.huggingface_handler.settings import FINETUNE_MAP
  from mindsdb.integrations.libs.base import BaseMLEngine
  from mindsdb.utilities import log
label_desc: Use image node_id 2 for calling the HuggingFaceHandler obj's underlying member method code with example usage: obj.create(target, args) without return types