docstr: Initializes a `AgreementMetric` object to compute agreement metrics on
  a `FeedbackDataset` for a given question.
  
  Args:
      dataset: FeedbackDataset to compute the metrics.
      question_name: Name of the question for which we want to analyse the agreement.
      responses_vs_suggestions: Whether to compare the responses vs the suggestions, or the
          other way around. Defaults to True (the metrics will be compared assuming the
          responses are the ground truth and the suggestions are the predictions).
  
  Raises:
      NotImplementedError: If the question type is not supported.
docstr_tok: ["Initializes","a","`","AgreementMetric","`","object","to","compute","agreement","metrics","on","a","`","FeedbackDataset","`","for","a","given","question",".","Args",":","dataset",":","FeedbackDataset","to","compute","the","metrics",".","question_name",":","Name","of","the","question","for","which","we","want","to","analyse","the","agreement",".","responses_vs_suggestions",":","Whether","to","compare","the","responses","vs","the","suggestions",",","or","the","other","way","around",".","Defaults","to","True","(","the","metrics","will","be","compared","assuming","the","responses","are","the","ground","truth","and","the","suggestions","are","the","predictions",")",".","Raises",":","NotImplementedError",":","If","the","question","type","is","not","supported","."]
code: def __init__(
      self,
      dataset: "FeedbackDataset",
      question_name: str,
      responses_vs_suggestions: bool = True,
  ) -> None:
      """Initializes a `AgreementMetric` object to compute agreement metrics on
      a `FeedbackDataset` for a given question.
  
      Args:
          dataset: FeedbackDataset to compute the metrics.
          question_name: Name of the question for which we want to analyse the agreement.
          responses_vs_suggestions: Whether to compare the responses vs the suggestions, or the
              other way around. Defaults to True (the metrics will be compared assuming the
              responses are the ground truth and the suggestions are the predictions).
  
      Raises:
          NotImplementedError: If the question type is not supported.
      """
      self._dataset = dataset
      self._question_name = question_name
      self._question_type = type(
          self._dataset.question_by_name(question_name)
      )
  
      # Check to assume the remote questions behave just like local ones
      if issubclass(self._question_type, RemoteSchema):
          self._question_type = type(
              self._dataset.question_by_name(question_name).to_local()
          )
  
      if allowed_metrics := self._metrics_per_question.get(
          self._question_type
      ):
          self._allowed_metrics = allowed_metrics
      else:
          raise NotImplementedError(
              f"No metrics are defined currently for {self._question_type.__name__}"
          )
      self._responses_vs_suggestions = responses_vs_suggestions
  
imports: from abc import ABC, abstractmethod
  from typing import TYPE_CHECKING, Any, Callable, Dict, Hashable, List, Tuple, Union
  import pandas
  from argilla.client.feedback.schemas.remote.shared import RemoteSchema
  from argilla.pydantic_v1 import BaseModel
label_desc: Use image node_id 1 to create a new MetricBase object  with example: obj = MetricBase(dataset, question_name, responses_vs_suggestions)