Argilla

Argilla

Argilla는 프로젝트에 고품질 데이터셋을 만들어야 하는 AI 엔지니어와 도메인 전문가를 위한 협업 주석(annotation) 도구예요. LiteLLM 통화 데이터를 Argilla로 로깅하는 방법을 알려드릴게요.

출처: 문서

본문

시작하기 (Getting Started)

Argilla에 데이터를 로깅하려면 먼저 Argilla 서버를 배포해야 해요. 아직 배포하지 않았다면 여기 지침을 따라 주세요.

다음으로 Argilla 데이터셋을 구성하고 생성해야 해요.

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.ChatField(
            name="user_input",
        ),
        rg.TextField(
            name="llm_output",
        ),
    ],
    questions=[
        rg.RatingQuestion(
            name="rating",
            values=[1, 2, 3, 4, 5, 6, 7],
        ),
    ],
)

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

dataset.create()

추가 구성은 Argilla 문서를 참고해 주세요.

사용법 (Usage)

SDK:

import os
import litellm
from litellm import completion

# add env vars
os.environ["ARGILLA_API_KEY"]="argilla.apikey"
os.environ["ARGILLA_BASE_URL"]="http://localhost:6900"
os.environ["ARGILLA_DATASET_NAME"]="my_first_dataset"   
os.environ["OPENAI_API_KEY"]="sk-proj-..."

litellm.callbacks = ["argilla"]

# add argilla transformation object
litellm.argilla_transformation_object = {
    "user_input": "messages", # 👈 key= argilla field, value = either message (argilla.ChatField) | response (argilla.TextField)
    "llm_output": "response"
}

## LLM CALL ## 
response = completion(
    model="gpt-5.6-luna",
    messages=[{"role": "user", "content": "Hello, how are you?"}],
)

PROXY:

litellm_settings:
  callbacks: ["argilla"]
  argilla_transformation_object:
    user_input: "messages" # 👈 key= argilla field, value = either message (argilla.ChatField) | response (argilla.TextField)
    llm_output: "response"

예시 출력 (Example Output)

Argilla 호출에 샘플링 비율 추가 (Add sampling rate to Argilla calls)

Argilla에 호출 일부만 로깅하려면 ARGILLA_SAMPLING_RATE를 환경 변수에 추가해 주세요.

ARGILLA_SAMPLING_RATE=0.1 # log 10% of calls to argilla

더 알아보기 (Learn more)