code: def get_max_initial_eval_set_hit_rate_v2(
      self,
  ) -> Optional[Dict[int, float]]:
      if self.provider_metadata_v2 is not None:
          hit_rate_dict = {}
          for provider_meta in self.provider_metadata_v2:
              if provider_meta.eval_set_metrics is not None:
                  for eval_metrics in provider_meta.eval_set_metrics:
                      eval_idx = eval_metrics.eval_set_index
                      new_hit_rate = (
                          eval_metrics.hit_rate_metrics.hit_rate_percent
                      )
                      if (
                          eval_idx not in hit_rate_dict.keys()
                          or new_hit_rate > hit_rate_dict[eval_idx]
                      ):
                          hit_rate_dict[eval_idx] = new_hit_rate
          return hit_rate_dict
  
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 17 for calling the SearchTask obj's underlying member method code with example usage: obj.get_max_initial_eval_set_hit_rate_v2() and returns: hit_rate_dict