code: def get_task(
      task_name: str,
      num_layers: int,
      model_names: List[str],
      collaterals_paths: List[str],
      df_paths: List[str],
  ) -> Task:
      """Gets a task for the app."""
      if len(collaterals_paths) == 1:
          mode = "normal"
          assert (
              len(collaterals_paths) == 1
          ), "Provided wrong number of csv"
      elif len(collaterals_paths) == 2:
          mode = "compare"
          assert len(df_paths) == 2, "Provided wrong number of csv"
  
      print(f"Starting app in '{mode}' mode for '{task_name}'")
  
      if task_name == "absa":
          return ABSATask(
              mode, num_layers, model_names, collaterals_paths, df_paths
          )
      elif task_name == "wsc":
          return WSCTask(
              mode, num_layers, model_names, collaterals_paths, df_paths
          )
  
imports: from typing import List, Tuple, Dict, Union
  from abc import ABC, abstractmethod
  import torch
  import pandas
  import numpy
label_desc: Use image node_id 1 for calling a global function with example usage: get_task(task_name, num_layers, model_names, collaterals_paths, df_paths) and returns: ABSATask, WSCTask