def compute(self, metric_names: Union[str, List[str]]) -> Union[ModelMetricResult, List[ModelMetricResult]]:
        """Computes the unified annotation metrics for the given question.

        Args:
            metric_names: name or list of names for the metrics to compute. i.e. `accuracy`
            kwargs: additional arguments to pass to the metric.

        Raises:
            ValueError: If the metric name is not supported for the given question.

        Returns:
            metrics: List of annotator metrics results if more than one metric is computed, or the result
                container if only one metric is computed.
        """
        metric_names = self._check_metrics(metric_names)
        metric_classes = self._get_metric_classes(metric_names)

        unified_responses, suggestions = get_unified_responses_and_suggestions(
            self._dataset,
            self._question_name,
            strategy_name=self._strategy_name,
            filter_by=self._filter_by,
            sort_by=self._sort_by,
            max_records=self._max_records,
        )
        self._check_responses_and_suggestions(unified_responses, suggestions)

        as_unified_responses, as_suggestions = self._prepare_responses_and_suggestions(unified_responses, suggestions)
        metrics = []
        for metric_name, metric_cls in metric_classes:
            metric = metric_cls(responses=as_unified_responses, suggestions=as_suggestions)
            result = metric.compute()
            metrics.append(ModelMetricResult(metric_name=metric_name, result=result, count=len(unified_responses)))

        if len(metric_names) == 1:
            return metrics[0]

        return metrics
Computes the unified annotation metrics for the given question.

        Args:
            metric_names: name or list of names for the metrics to compute. i.e. `accuracy`
            kwargs: additional arguments to pass to the metric.

        Raises:
            ValueError: If the metric name is not supported for the given question.

        Returns:
            metrics: List of annotator metrics results if more than one metric is computed, or the result
                container if only one metric is computed.
        
argilla-v1/src/argilla_v1/client/feedback/metrics/annotator_metrics.py