Argilla 데이터셋 관리 — Fields·Questions·Metadata
Argilla 데이터셋 관리
Argilla에서 **데이터셋(Dataset)**은 라벨러가 UI로 피드백을 줄 레코드의 모음이에요. 프로젝트의 목적과 필요한 피드백 종류를 정한 뒤, 필드·질문·메타데이터·벡터·가이드라인을 설정으로 정의하면서 데이터셋을 구성해요.
누가 데이터셋을 관리하나
owner 역할 사용자만 모든 데이터셋을 관리(생성·조회·수정·삭제)할 수 있어요. admin 역할은 접근 권한이 있는 워크스페이스의 데이터셋을 관리할 수 있어요.
데이터셋 생성
Dataset 클래스에 이름·워크스페이스·설정을 담아 create 메서드로 서버에 보내요.
import argilla as rg
client = rg.Argilla(api_url="<api_url>", api_key="<api_key>")
settings = rg.Settings(
guidelines="These are some guidelines.",
fields=[rg.TextField(name="text",)],
questions=[rg.LabelQuestion(name="label", labels=["label_1", "label_2", "label_3"],)],
)
dataset = rg.Dataset(name="my_dataset", workspace="my_workspace", settings=settings,)
dataset.create()
dataset.id, dataset.name, dataset.settings, dataset.fields, dataset.questions처럼 객체 속성으로 접근할 수 있어요.
설정: Fields
필드는 주석이 필요한 데이터 항목이에요. 현재 지원하는 필드는 다음과 같아요.
TextField— 평문과 markdownImageField— 이미지ChatField— 채팅 형식 데이터CustomField— 커스텀 템플릿 (기본advanced_mode=False는{{record.fields.field.key}}브래킷 문법,advanced_mode=True는 커스텀 자바스크립트)
rg.TextField(name="text", title="Text", use_markdown=False, required=True, description="Field description",)
설정: Questions
주석자가 답할 질문이에요. 종류에 따라 라벨을 고르거나 정렬하거나 점수를 매겨요.
LabelQuestion— 목록에서 라벨 하나 선택 (문서 분류, 라운드 형태)MultiLabelQuestion— 적용되는 라벨 모두 선택 (멀티라벨 분류, 사각 형태)RankingQuestion— 옵션을 선호 순서로 정렬RatingQuestion— 정수 값 하나 선택 (만족도 점수)SpanQuestion— 필드 텍스트 일부를 선택해 라벨 적용 (NER)TextQuestion— 자유 텍스트 입력 (수정·설명 수집)
rg.LabelQuestion(name="label", labels={"YES": "Yes", "NO": "No"}, title="Is the response relevant for the given prompt?", required=True, visible_labels=10)
설정: Metadata와 벡터
메타데이터는 UI와 SDK의 필터·정렬에 쓰여요. TermsMetadataProperty는 문자열 목록을 옵션으로 받고, VectorField는 벡터 필드를 정의해요. 업데이트는 속성을 바꾼 뒤 dataset.update()를, 추가·삭제는 add·delete 메서드를 써요. 데이터셋 삭제는 dataset.delete()예요.