跳到内容

字段

Argilla 中的字段定义了记录的内容,这些内容将由用户审核。

使用示例

要定义一个字段,实例化不同的字段类,并将其传递给 Settings 类的 fields 参数。

text_field = rg.TextField(name="text")
markdown_field = rg.TextField(name="text", use_markdown=True)
image_field = rg.ImageField(name="image")

Settings 类的 fields 参数可以接受字段列表,就像这样

settings = rg.Settings(
    fields=[
        text_field,
        markdown_field,
        image_field,
    ],
    questions=[
        rg.TextQuestion(name="response"),
    ],
)

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

要添加带有字段值的记录,请参阅 rg.Dataset.records 文档。


TextField

基类:FieldBase

用于 Argilla Dataset Settings 的文本字段

源代码位于 src/argilla/settings/_field.py
class TextField(FieldBase):
    """Text field for use in Argilla `Dataset` `Settings`"""

    def __init__(
        self,
        name: str,
        title: Optional[str] = None,
        use_markdown: Optional[bool] = False,
        required: bool = True,
        description: Optional[str] = None,
        client: Optional[Argilla] = None,
    ) -> None:
        """Text field for use in Argilla `Dataset` `Settings`
        Parameters:
            name (str): The name of the field
            title (Optional[str], optional): The title of the field. Defaults to None.
            use_markdown (Optional[bool], optional): Whether to use markdown. Defaults to False.
            required (bool): Whether the field is required. Defaults to True.
            description (Optional[str], optional): The description of the field. Defaults to None.

        """

        super().__init__(
            name=name,
            title=title,
            required=required,
            description=description,
            settings=TextFieldSettings(use_markdown=use_markdown),
            _client=client,
        )

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

    @use_markdown.setter
    def use_markdown(self, value: bool) -> None:
        self._model.settings.use_markdown = value

__init__(name, title=None, use_markdown=False, required=True, description=None, client=None)

用于 Argilla Dataset Settings 的文本字段。参数:name (str): 字段的名称 title (Optional[str], optional): 字段的标题。默认为 None。 use_markdown (Optional[bool], optional): 是否使用 markdown。默认为 False。 required (bool): 字段是否为必填项。默认为 True。 description (Optional[str], optional): 字段的描述。默认为 None。

源代码位于 src/argilla/settings/_field.py
def __init__(
    self,
    name: str,
    title: Optional[str] = None,
    use_markdown: Optional[bool] = False,
    required: bool = True,
    description: Optional[str] = None,
    client: Optional[Argilla] = None,
) -> None:
    """Text field for use in Argilla `Dataset` `Settings`
    Parameters:
        name (str): The name of the field
        title (Optional[str], optional): The title of the field. Defaults to None.
        use_markdown (Optional[bool], optional): Whether to use markdown. Defaults to False.
        required (bool): Whether the field is required. Defaults to True.
        description (Optional[str], optional): The description of the field. Defaults to None.

    """

    super().__init__(
        name=name,
        title=title,
        required=required,
        description=description,
        settings=TextFieldSettings(use_markdown=use_markdown),
        _client=client,
    )

ImageField

基类:FieldBase

用于 Argilla Dataset Settings 的图像字段

源代码位于 src/argilla/settings/_field.py
class ImageField(FieldBase):
    """Image field for use in Argilla `Dataset` `Settings`"""

    def __init__(
        self,
        name: str,
        title: Optional[str] = None,
        required: Optional[bool] = True,
        description: Optional[str] = None,
        _client: Optional[Argilla] = None,
    ) -> None:
        """
        Text field for use in Argilla `Dataset` `Settings`

        Parameters:
            name (str): The name of the field
            title (Optional[str], optional): The title of the field. Defaults to None.
            required (Optional[bool], optional): Whether the field is required. Defaults to True.
            description (Optional[str], optional): The description of the field. Defaults to None.
        """

        super().__init__(
            name=name,
            title=title,
            required=required,
            description=description,
            settings=ImageFieldSettings(),
            _client=_client,
        )

__init__(name, title=None, required=True, description=None, _client=None)

用于 Argilla Dataset Settings 的文本字段

参数

名称 类型 描述 默认值
name str

字段的名称

required
title Optional[str]

字段的标题。默认为 None。

None
required Optional[bool]

字段是否为必填项。默认为 True。

True
description Optional[str]

字段的描述。默认为 None。

None
源代码位于 src/argilla/settings/_field.py
def __init__(
    self,
    name: str,
    title: Optional[str] = None,
    required: Optional[bool] = True,
    description: Optional[str] = None,
    _client: Optional[Argilla] = None,
) -> None:
    """
    Text field for use in Argilla `Dataset` `Settings`

    Parameters:
        name (str): The name of the field
        title (Optional[str], optional): The title of the field. Defaults to None.
        required (Optional[bool], optional): Whether the field is required. Defaults to True.
        description (Optional[str], optional): The description of the field. Defaults to None.
    """

    super().__init__(
        name=name,
        title=title,
        required=required,
        description=description,
        settings=ImageFieldSettings(),
        _client=_client,
    )

ChatField

基类:FieldBase

用于 Argilla Dataset Settings 的聊天字段

源代码位于 src/argilla/settings/_field.py
class ChatField(FieldBase):
    """Chat field for use in Argilla `Dataset` `Settings`"""

    def __init__(
        self,
        name: str,
        title: Optional[str] = None,
        use_markdown: Optional[bool] = True,
        required: bool = True,
        description: Optional[str] = None,
        _client: Optional[Argilla] = None,
    ) -> None:
        """
        Chat field for use in Argilla `Dataset` `Settings`

        Parameters:
            name (str): The name of the field
            title (Optional[str], optional): The title of the field. Defaults to None.
            use_markdown (Optional[bool], optional): Whether to use markdown. Defaults to True.
            required (bool): Whether the field is required. Defaults to True.
            description (Optional[str], optional): The description of the field. Defaults to None.
        """

        super().__init__(
            name=name,
            title=title,
            required=required,
            description=description,
            settings=ChatFieldSettings(use_markdown=use_markdown),
            _client=_client,
        )

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

    @use_markdown.setter
    def use_markdown(self, value: bool) -> None:
        self._model.settings.use_markdown = value

__init__(name, title=None, use_markdown=True, required=True, description=None, _client=None)

用于 Argilla Dataset Settings 的聊天字段

参数

名称 类型 描述 默认值
name str

字段的名称

required
title Optional[str]

字段的标题。默认为 None。

None
use_markdown Optional[bool]

是否使用 markdown。默认为 True。

True
required bool

字段是否为必填项。默认为 True。

True
description Optional[str]

字段的描述。默认为 None。

None
源代码位于 src/argilla/settings/_field.py
def __init__(
    self,
    name: str,
    title: Optional[str] = None,
    use_markdown: Optional[bool] = True,
    required: bool = True,
    description: Optional[str] = None,
    _client: Optional[Argilla] = None,
) -> None:
    """
    Chat field for use in Argilla `Dataset` `Settings`

    Parameters:
        name (str): The name of the field
        title (Optional[str], optional): The title of the field. Defaults to None.
        use_markdown (Optional[bool], optional): Whether to use markdown. Defaults to True.
        required (bool): Whether the field is required. Defaults to True.
        description (Optional[str], optional): The description of the field. Defaults to None.
    """

    super().__init__(
        name=name,
        title=title,
        required=required,
        description=description,
        settings=ChatFieldSettings(use_markdown=use_markdown),
        _client=_client,
    )

CustomField

基类:FieldBase

用于 Argilla Dataset Settings 的自定义字段

源代码位于 src/argilla/settings/_field.py
class CustomField(FieldBase):
    """Custom field for use in Argilla `Dataset` `Settings`"""

    def __init__(
        self,
        name: str,
        title: Optional[str] = None,
        template: Optional[str] = "",
        advanced_mode: Optional[bool] = False,
        required: bool = True,
        description: Optional[str] = None,
        _client: Optional[Argilla] = None,
    ) -> None:
        """
        Custom field for use in Argilla `Dataset` `Settings` for working with custom HTML and CSS templates.
        By default argilla will use a brackets syntax engine for the templates, which converts
        `{{ field.key }}` to the values of record's field's object.

        Parameters:
            name (str): The name of the field
            title (Optional[str], optional): The title of the field. Defaults to None.
            template (str): The template of the field (HTML and CSS)
            advanced_mode (Optional[bool], optional): Whether to use advanced mode. Defaults to False.
                Deactivate the brackets syntax engine and use custom javascript to render the field.
            required (Optional[bool], optional): Whether the field is required. Defaults to True.
            required (bool): Whether the field is required. Defaults to True.
            description (Optional[str], optional): The description of the field. Defaults to None.
        """
        template = self._load_template(template)
        super().__init__(
            name=name,
            title=title,
            required=required,
            description=description,
            settings=CustomFieldSettings(template=template, advanced_mode=advanced_mode),
            _client=_client,
        )

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

    @template.setter
    def template(self, value: str) -> None:
        self._model.settings.template = self._load_template(value)

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

    @advanced_mode.setter
    def advanced_mode(self, value: bool) -> None:
        self._model.settings.advanced_mode = value

    def validate(self):
        if self.template is None or self.template.strip() == "":
            raise SettingsError("A valid template is required for CustomField")

    @classmethod
    def _load_template(cls, template: str) -> str:
        if template.endswith(".html") and os.path.exists(template):
            with open(template, "r") as f:
                return f.read()
        if template.startswith("http") or template.startswith("https"):
            return requests.get(template).text
        if isinstance(template, str):
            return template
        raise ArgillaError(
            "Invalid template. Please provide 1: a valid path or URL to a HTML file. 2: a valid HTML string."
        )

__init__(name, title=None, template='', advanced_mode=False, required=True, description=None, _client=None)

用于 Argilla Dataset Settings 的自定义字段,用于处理自定义 HTML 和 CSS 模板。默认情况下,argilla 将对模板使用 brackets 语法引擎,它将 {{ field.key }} 转换为记录字段对象的值。

参数

名称 类型 描述 默认值
name str

字段的名称

required
title Optional[str]

字段的标题。默认为 None。

None
template str

字段的模板 (HTML 和 CSS)

''
advanced_mode Optional[bool]

是否使用高级模式。默认为 False。停用 brackets 语法引擎,并使用自定义 javascript 渲染字段。

False
required Optional[bool]

字段是否为必填项。默认为 True。

True
required bool

字段是否为必填项。默认为 True。

True
description Optional[str]

字段的描述。默认为 None。

None
源代码位于 src/argilla/settings/_field.py
def __init__(
    self,
    name: str,
    title: Optional[str] = None,
    template: Optional[str] = "",
    advanced_mode: Optional[bool] = False,
    required: bool = True,
    description: Optional[str] = None,
    _client: Optional[Argilla] = None,
) -> None:
    """
    Custom field for use in Argilla `Dataset` `Settings` for working with custom HTML and CSS templates.
    By default argilla will use a brackets syntax engine for the templates, which converts
    `{{ field.key }}` to the values of record's field's object.

    Parameters:
        name (str): The name of the field
        title (Optional[str], optional): The title of the field. Defaults to None.
        template (str): The template of the field (HTML and CSS)
        advanced_mode (Optional[bool], optional): Whether to use advanced mode. Defaults to False.
            Deactivate the brackets syntax engine and use custom javascript to render the field.
        required (Optional[bool], optional): Whether the field is required. Defaults to True.
        required (bool): Whether the field is required. Defaults to True.
        description (Optional[str], optional): The description of the field. Defaults to None.
    """
    template = self._load_template(template)
    super().__init__(
        name=name,
        title=title,
        required=required,
        description=description,
        settings=CustomFieldSettings(template=template, advanced_mode=advanced_mode),
        _client=_client,
    )