code: def metric_summary(
      self,
      name: str,
      task: TaskType,
      metric: str,
      query: Optional[str] = None,
      **metric_params,
  ):
      url = self._API_URL_PATTERN.format(
          task=task, name=name, metric=metric
      )
      metric_params = metric_params or {}
      query_params = {
          k: v for k, v in metric_params.items() if v is not None
      }
      if query_params:
          url += "?" + "&".join(
              [f"{k}={v}" for k, v in query_params.items()]
          )
  
      metric_summary = self.http_client.post(
          url, json={"query_text": query}
      )
      return metric_summary
  
imports: from typing import Optional
  from argilla.client.apis import AbstractApi
  from argilla.client.sdk.datasets.models import TaskType
label_desc: Use image node_id 1 for calling the MetricsAPI obj's underlying member method code with example usage: obj.metric_summary(name, task, metric, query) and returns: metric_summary