워크플로우 평가 퀵스타트

워크플로우 평가 퀵스타트 (Workflow Evaluation Quickstart)

workflow_eval 템플릿은 이메일 분류와 라우팅으로 복잡한 LLM 워크플로우를 평가해요. 프로젝트 생성부터 분류 정확도 기반 평가까지 진행할 수 있어요.

출처: 문서

본문

workflow_eval 템플릿은 이메일 분류와 라우팅으로 복잡한 LLM 워크플로우를 평가해요.

프로젝트 만들기

ragas quickstart workflow_eval
cd workflow_eval

의존성 설치

uv sync

API 키 설정

export OPENAI_API_KEY="your-openai-key"

평가 실행

uv run python evals.py

프로젝트 구조

workflow_eval/
├── README.md              # Project documentation
├── pyproject.toml         # Project configuration
├── workflow.py            # Workflow implementation
├── evals.py               # Evaluation workflow
├── __init__.py            # Python package marker
└── evals/
    ├── datasets/          # Test datasets
    ├── experiments/       # Evaluation results
    └── logs/              # Execution logs

무엇을 평가하나

템플릿은 고객 지원 이메일 분류 워크플로우를 평가해요.

  • Workflow: 다단계 이메일 처리 (분류 → 추출 → 응답)
  • Categories: Bug Report, Feature Request, Billing
  • Test Cases: 기대 카테고리와 추출 필드가 있는 고객 이메일
  • Metric: 분류 정확도를 확인하는 커스텀 이산 메트릭

코드 이해하기

워크플로우 (workflow.py)

고객 지원 이메일 워크플로우를 구현해요.

from workflow import default_workflow_client

workflow = default_workflow_client()
result = workflow.process_email("I found a bug in version 2.1.4...")
# Returns: category, extracted fields, response

평가 (evals.py)

통과 기준에 대한 워크플로우 정확도를 테스트해요.

def load_dataset():
    dataset_dict = [
        {
            "email": "Hi, I'm getting error code XYZ-123 when using version 2.1.4...",
            "pass_criteria": "category Bug Report; product_version 2.1.4; error_code XYZ-123",
        },
        # 테스트 케이스 더...
    ]

메트릭은 워크플로우가 올바르게:

  • 이메일 카테고리를 분류하는지
  • 관련 필드(버전, 오류 코드, 인보이스 번호 등)를 추출하는지
  • 적절한 응답을 생성하는지

평가해요.

테스트 케이스

템플릿은 다양한 시나리오를 포함해요.

  • Bug Reports: 버전 번호와 오류 코드 포함
  • Feature Requests: 긴급도 수준과 제품 영역 포함
  • Billing Issues: 인보이스 번호와 금액 포함

커스터마이즈

자신만의 워크플로우 추가

예제 워크플로우를 자신의 것으로 교체해요.

from your_workflow import YourWorkflow

workflow = YourWorkflow()

@experiment()
async def run_experiment(row):
    result = await workflow.process(row["input"])
    # 결과 평가...

더 알아보기 (Learn more)