@dataclass
class CritiqueTask(RatingToArgillaMixin, Task):
"""A `Task` for critique / judge tasks.
Args:
system_prompt (str): the system prompt to be used for generation.
task_description (Union[str, None], optional): the description of the task. Defaults to `None`.
"""
__type__: ClassVar[Literal["labelling"]] = "labelling"
@property
def input_args_names(self) -> List[str]:
"""Returns the names of the input arguments of the task."""
return ["input", "generations"]
@property
def output_args_names(self) -> List[str]:
"""Returns the names of the output arguments of the task."""
return ["critique", "score"]
def to_argilla_dataset(
self,
dataset_row: Dict[str, Any],
generations_column: str = "generations",
score_column: str = "score",
critique_column: str = "critique",
score_values: Optional[List[int]] = None,
) -> "FeedbackDataset":
return super().to_argilla_dataset(
dataset_row=dataset_row,
generations_column=generations_column,
ratings_column=score_column,
rationale_column=critique_column,
ratings_values=score_values or [1, 2, 3, 4, 5],
)
def to_argilla_record(
self,
dataset_row: Dict[str, Any],
generations_column: str = "generations",
score_column: str = "score",
critique_column: str = "critique",
score_values: Optional[List[int]] = None,
) -> Union["FeedbackRecord", List["FeedbackRecord"]]:
return super().to_argilla_record(
dataset_row=dataset_row,
generations_column=generations_column,
ratings_column=score_column,
rationale_column=critique_column,
ratings_values=score_values or [1, 2, 3, 4, 5],
)