跳到内容

元数据属性

元数据属性用于在数据集中定义元数据字段。元数据字段用于存储关于数据集中记录的附加信息。例如,记录的类别、产品的价格或任何其他与记录相关的信息。

使用示例

为数据集定义元数据属性

我们通过类型特定的类来定义元数据属性。以下示例演示了如何将元数据属性定义为浮点型、整型或术语元数据属性,并将它们传递给 Settings

TermsMetadataProperty 用于定义具有选项列表的元数据字段。例如,一个颜色字段,选项为红色、蓝色和绿色。FloatMetadataPropertyIntegerMetadataProperty 用于定义具有浮点值的元数据字段。例如,价格字段的最小值为 0.0,最大值为 100.0。

metadata_field = rg.TermsMetadataProperty(
    name="color",
    options=["red", "blue", "green"],
    title="Color",
)

float_metadata_field = rg.FloatMetadataProperty(
    name="price",
    min=0.0,
    max=100.0,
    title="Price",
)

int_metadata_field = rg.IntegerMetadataProperty(
    name="quantity",
    min=0,
    max=100,
    title="Quantity",
)

dataset = rg.Dataset(
    name="my_dataset",
    settings=rg.Settings(
        fields=[
            rg.TextField(name="text"),
        ],
        questions=[
            rg.TextQuestion(name="response"),
        ],
        metadata=[
            metadata_field,
            float_metadata_field,
            int_metadata_field,
        ],
    ),
)

dataset = rg.Dataset(
    name="my_dataset",
    settings=settings,
)

要添加带有元数据的记录,请参阅 rg.Metadata 类文档。


FloatMetadataProperty

基类: MetadataPropertyBase

源代码位于 src/argilla/settings/_metadata.py
class FloatMetadataProperty(MetadataPropertyBase):
    def __init__(
        self,
        name: str,
        min: Optional[float] = None,
        max: Optional[float] = None,
        title: Optional[str] = None,
        visible_for_annotators: Optional[bool] = True,
        client: Optional[Argilla] = None,
    ) -> None:
        """Create a metadata field with float settings.

        Parameters:
            name (str): The name of the metadata field
            min (Optional[float]): The minimum valid value. If none is provided, it will be computed from the values provided in the records.
            max (Optional[float]): The maximum valid value. If none is provided, it will be computed from the values provided in the records.
            title (Optional[str]): The title of the metadata to be shown in the UI
            visible_for_annotators (Optional[bool]): Whether the metadata field is visible for annotators.

        Raises:
            MetadataError: If an error occurs while defining metadata settings.
        """

        super().__init__(client=client)

        try:
            settings = FloatMetadataPropertySettings(min=min, max=max)
        except ValueError as e:
            raise MetadataError(f"Error defining metadata settings for {name}") from e

        self._model = MetadataFieldModel(
            name=name,
            title=title,
            settings=settings,
            visible_for_annotators=visible_for_annotators,
        )

    @property
    def min(self) -> Optional[int]:
        return self._model.settings.min

    @min.setter
    def min(self, value: Optional[int]) -> None:
        self._model.settings.min = value

    @property
    def max(self) -> Optional[int]:
        return self._model.settings.max

    @max.setter
    def max(self, value: Optional[int]) -> None:
        self._model.settings.max = value

    @classmethod
    def from_model(cls, model: MetadataFieldModel) -> "FloatMetadataProperty":
        instance = FloatMetadataProperty(name=model.name)
        instance._model = model

        return instance

__init__(name, min=None, max=None, title=None, visible_for_annotators=True, client=None)

创建具有浮点设置的元数据字段。

参数

名称 类型 描述 默认值
name str

元数据字段的名称

必需
min 可选[float]

最小有效值。如果未提供,则将从记录中提供的值计算得出。

max 可选[float]

最大有效值。如果未提供,则将从记录中提供的值计算得出。

title 可选[str]

要在 UI 中显示的元数据的标题

visible_for_annotators 可选[bool]

元数据字段是否对标注者可见。

True

引发

类型 描述
MetadataError

如果在定义元数据设置时发生错误。

源代码位于 src/argilla/settings/_metadata.py
def __init__(
    self,
    name: str,
    min: Optional[float] = None,
    max: Optional[float] = None,
    title: Optional[str] = None,
    visible_for_annotators: Optional[bool] = True,
    client: Optional[Argilla] = None,
) -> None:
    """Create a metadata field with float settings.

    Parameters:
        name (str): The name of the metadata field
        min (Optional[float]): The minimum valid value. If none is provided, it will be computed from the values provided in the records.
        max (Optional[float]): The maximum valid value. If none is provided, it will be computed from the values provided in the records.
        title (Optional[str]): The title of the metadata to be shown in the UI
        visible_for_annotators (Optional[bool]): Whether the metadata field is visible for annotators.

    Raises:
        MetadataError: If an error occurs while defining metadata settings.
    """

    super().__init__(client=client)

    try:
        settings = FloatMetadataPropertySettings(min=min, max=max)
    except ValueError as e:
        raise MetadataError(f"Error defining metadata settings for {name}") from e

    self._model = MetadataFieldModel(
        name=name,
        title=title,
        settings=settings,
        visible_for_annotators=visible_for_annotators,
    )

IntegerMetadataProperty

基类: MetadataPropertyBase

源代码位于 src/argilla/settings/_metadata.py
class IntegerMetadataProperty(MetadataPropertyBase):
    def __init__(
        self,
        name: str,
        min: Optional[int] = None,
        max: Optional[int] = None,
        title: Optional[str] = None,
        visible_for_annotators: Optional[bool] = True,
        client: Optional[Argilla] = None,
    ) -> None:
        """Create a metadata field with integer settings.

        Parameters:
            name (str): The name of the metadata field
            min (Optional[int]): The minimum valid value. If none is provided, it will be computed from the values provided in the records.
            max (Optional[int]): The maximum  valid value. If none is provided, it will be computed from the values provided in the records.
            title (Optional[str]): The title of the metadata to be shown in the UI
            visible_for_annotators (Optional[bool]): Whether the metadata field is visible for annotators.

        Raises:
            MetadataError: If an error occurs while defining metadata settings.
        """
        super().__init__(client=client)

        try:
            settings = IntegerMetadataPropertySettings(min=min, max=max)
        except ValueError as e:
            raise MetadataError(f"Error defining metadata settings for {name}") from e

        self._model = MetadataFieldModel(
            name=name,
            title=title,
            settings=settings,
            visible_for_annotators=visible_for_annotators,
        )

    @property
    def min(self) -> Optional[int]:
        return self._model.settings.min

    @min.setter
    def min(self, value: Optional[int]) -> None:
        self._model.settings.min = value

    @property
    def max(self) -> Optional[int]:
        return self._model.settings.max

    @max.setter
    def max(self, value: Optional[int]) -> None:
        self._model.settings.max = value

    @classmethod
    def from_model(cls, model: MetadataFieldModel) -> "IntegerMetadataProperty":
        instance = IntegerMetadataProperty(name=model.name)
        instance._model = model

        return instance

__init__(name, min=None, max=None, title=None, visible_for_annotators=True, client=None)

创建具有整数设置的元数据字段。

参数

名称 类型 描述 默认值
name str

元数据字段的名称

必需
min 可选[int]

最小有效值。如果未提供,则将从记录中提供的值计算得出。

max 可选[int]

最大有效值。如果未提供,则将从记录中提供的值计算得出。

title 可选[str]

要在 UI 中显示的元数据的标题

visible_for_annotators 可选[bool]

元数据字段是否对标注者可见。

True

引发

类型 描述
MetadataError

如果在定义元数据设置时发生错误。

源代码位于 src/argilla/settings/_metadata.py
def __init__(
    self,
    name: str,
    min: Optional[int] = None,
    max: Optional[int] = None,
    title: Optional[str] = None,
    visible_for_annotators: Optional[bool] = True,
    client: Optional[Argilla] = None,
) -> None:
    """Create a metadata field with integer settings.

    Parameters:
        name (str): The name of the metadata field
        min (Optional[int]): The minimum valid value. If none is provided, it will be computed from the values provided in the records.
        max (Optional[int]): The maximum  valid value. If none is provided, it will be computed from the values provided in the records.
        title (Optional[str]): The title of the metadata to be shown in the UI
        visible_for_annotators (Optional[bool]): Whether the metadata field is visible for annotators.

    Raises:
        MetadataError: If an error occurs while defining metadata settings.
    """
    super().__init__(client=client)

    try:
        settings = IntegerMetadataPropertySettings(min=min, max=max)
    except ValueError as e:
        raise MetadataError(f"Error defining metadata settings for {name}") from e

    self._model = MetadataFieldModel(
        name=name,
        title=title,
        settings=settings,
        visible_for_annotators=visible_for_annotators,
    )

TermsMetadataProperty

基类: MetadataPropertyBase

源代码位于 src/argilla/settings/_metadata.py
class TermsMetadataProperty(MetadataPropertyBase):
    def __init__(
        self,
        name: str,
        options: Optional[List[Any]] = None,
        title: Optional[str] = None,
        visible_for_annotators: Optional[bool] = True,
        client: Optional[Argilla] = None,
    ) -> None:
        """Create a metadata field with terms settings.

        Parameters:
            name (str): The name of the metadata field
            options (Optional[List[Any]]): The list of options
            title (Optional[str]): The title of the metadata to be shown in the UI
            visible_for_annotators (Optional[bool]): Whether the metadata field is visible for annotators.

        Raises:
            MetadataError: If an error occurs while defining metadata settings
        """
        super().__init__(client=client)

        try:
            settings = TermsMetadataPropertySettings(values=options)
        except ValueError as e:
            raise MetadataError(f"Error defining metadata settings for {name}") from e

        self._model = MetadataFieldModel(
            name=name,
            title=title,
            settings=settings,
            visible_for_annotators=visible_for_annotators,
        )

    @property
    def options(self) -> Optional[List[str]]:
        return self._model.settings.values

    @options.setter
    def options(self, value: list[str]) -> None:
        self._model.settings.values = value

    @classmethod
    def from_model(cls, model: MetadataFieldModel) -> "TermsMetadataProperty":
        instance = TermsMetadataProperty(name=model.name)
        instance._model = model

        return instance

__init__(name, options=None, title=None, visible_for_annotators=True, client=None)

创建具有术语设置的元数据字段。

参数

名称 类型 描述 默认值
name str

元数据字段的名称

必需
options 可选[List[Any]]

选项列表

title 可选[str]

要在 UI 中显示的元数据的标题

visible_for_annotators 可选[bool]

元数据字段是否对标注者可见。

True

引发

类型 描述
MetadataError

如果在定义元数据设置时发生错误

源代码位于 src/argilla/settings/_metadata.py
def __init__(
    self,
    name: str,
    options: Optional[List[Any]] = None,
    title: Optional[str] = None,
    visible_for_annotators: Optional[bool] = True,
    client: Optional[Argilla] = None,
) -> None:
    """Create a metadata field with terms settings.

    Parameters:
        name (str): The name of the metadata field
        options (Optional[List[Any]]): The list of options
        title (Optional[str]): The title of the metadata to be shown in the UI
        visible_for_annotators (Optional[bool]): Whether the metadata field is visible for annotators.

    Raises:
        MetadataError: If an error occurs while defining metadata settings
    """
    super().__init__(client=client)

    try:
        settings = TermsMetadataPropertySettings(values=options)
    except ValueError as e:
        raise MetadataError(f"Error defining metadata settings for {name}") from e

    self._model = MetadataFieldModel(
        name=name,
        title=title,
        settings=settings,
        visible_for_annotators=visible_for_annotators,
    )