code: def __init__(
      self,
      search_task_id: str,
      dataset: Optional["dataset.Dataset"] = None,
      return_scores: bool = False,
      extract_features: bool = False,
      accurate_model: bool = False,
      initial_search_task_id: Optional[str] = None,
      task_type: Optional[ModelTaskType] = None,
      endpoint: Optional[str] = None,
      api_key: Optional[str] = None,
      client_ip: Optional[str] = None,
  ):
      self.search_task_id = search_task_id
      self.initial_search_task_id = initial_search_task_id
      self.dataset = dataset
      self.return_scores = return_scores
      self.extract_features = extract_features
      self.accurate_model = accurate_model
      self.task_type = task_type
      self.summary = None
      self.endpoint = endpoint
      self.api_key = api_key
      self.logger = LoggerFactory().get_logger(
          endpoint, api_key, client_ip
      )
      self.provider_metadata_v2: Optional[
          List[ProviderTaskMetadataV2]
      ] = None
      self.unused_features_for_generation: Optional[List[str]] = None
  
imports: import tempfile
  import time
  from functools import lru_cache
  from typing import Dict, List, Optional
  import pandas
  from upgini import dataset
  from upgini.http import LoggerFactory, ProviderTaskSummary, SearchProgress, SearchTaskSummary, get_rest_client, is_demo_api_key
  from upgini.metadata import SYSTEM_RECORD_ID, FeaturesMetadataV2, FileMetadata, GeneratedFeatureMetadata, ModelTaskType, ProviderTaskMetadataV2, RuntimeParameters
  from upgini.resource_bundle import bundle
  from upgini.spinner import Spinner
label_desc: Use image node_id 1 to create a new SearchTask object  with example: obj = SearchTask(search_task_id, dataset, return_scores, extract_features, accurate_model, initial_search_task_id, task_type, endpoint, api_key, client_ip)