퀵 스타트: 평가를 순식간에 실행해봐요

퀵 스타트: 평가를 순식간에 실행해봐요 (Quick Start)

몇 분 안에 Ragas를 시작할 수 있어요. 몇 가지 명령어만으로 완전한 평가 프로젝트를 만들 수 있어요. 설치부터 평가 실행까지 전 과정을 단계별로 따라가 보면 금방 감이 잡힐 거예요.

출처: 문서

본문

몇 분 안에 Ragas를 시작해요. 몇 가지 명령어로 완전한 평가 프로젝트를 만들어볼 수 있어요.

Step 1: 프로젝트 만들기

다음 방법 중 하나를 선택해요.

uvx (권장) 설치가 필요 없어요. uvx가 ragas를 자동으로 다운로드해서 실행해요.

uvx ragas quickstart rag_eval
cd rag_eval

Ragas 먼저 설치 ragas를 먼저 설치한 뒤 프로젝트를 만들어요.

pip install ragas
ragas quickstart rag_eval
cd rag_eval

Step 2: 의존성 설치

프로젝트 의존성을 설치해요.

uv sync

pip을 선호한다면 이렇게 해요.

pip install -e .

Step 3: API 키 설정

기본적으로 퀵스타트 예제는 OpenAI를 사용해요. API 키를 설정하면 바로 시작할 수 있어요. 약간의 변경만으로 다른 프로바이더도 쓸 수 있어요.

OpenAI (기본값)

export OPENAI_API_KEY="your-openai-key"

퀵스타트 프로젝트는 이미 OpenAI를 쓰도록 설정되어 있어요. 준비 완료! 🎉

Anthropic Claude

export ANTHROPIC_API_KEY="your-anthropic-key"

그런 다음 evals.py의 LLM 초기화를 수정해요.

from anthropic import Anthropic
from ragas.llms import llm_factory

client = Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
llm = llm_factory("claude-3-5-sonnet-20241022", provider="anthropic", client=client)

Google Gemini

export GOOGLE_API_KEY="your-google-api-key"

그런 다음 evals.py의 LLM 초기화를 수정해요.

옵션 1: Google 공식 라이브러리 사용 (권장)

import google.generativeai as genai
from ragas.llms import llm_factory

genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
client = genai.GenerativeModel("gemini-2.0-flash")
llm = llm_factory("gemini-2.0-flash", provider="google", client=client)
# google 프로바이더의 경우 adapter가 "litellm"으로 자동 감지돼요

더 많은 Gemini 옵션과 자세한 설정은 Google Gemini 통합 가이드를 참고해요.

로컬 모델 (Ollama)

Ollama를 설치하고 로컬에서 실행한 뒤 evals.py의 LLM 초기화를 수정해요.

from openai import OpenAI
from ragas.llms import llm_factory

# Ollama용 OpenAI 호환 클라이언트 생성
client = OpenAI(
    api_key="ollama",  # Ollama는 실제 키가 필요 없어요
    base_url="http://localhost:11434/v1"
)
llm = llm_factory("mistral", provider="openai", client=client)

커스텀 / 기타 프로바이더

OpenAI 호환 API를 가진 모든 LLM에 대해 이렇게 해요.

from openai import OpenAI
from ragas.llms import llm_factory

client = OpenAI(
    api_key="your-api-key",
    base_url="https://your-api-endpoint"
)
llm = llm_factory("model-name", provider="openai", client=client)

자세한 내용은 LLM 통합에서 확인해요.

프로젝트 구조 (Project Structure)

생성된 프로젝트는 다음을 포함해요.

rag_eval/
├── README.md              # 프로젝트 문서
├── pyproject.toml         # 프로젝트 설정
├── rag.py                 # RAG 애플리케이션
├── evals.py               # 평가 워크플로우
├── __init__.py            # Python 패키지로 만듦
└── evals/
    ├── datasets/          # 테스트 데이터 파일
    ├── experiments/       # 평가 결과
    └── logs/              # 실행 로그

Step 4: 평가 실행

평가 스크립트를 실행해요.

uv run python evals.py

pip으로 설치했다면 이렇게 해요.

python evals.py

평가는 다음을 수행해요:

  • evals.pyload_dataset() 함수에서 테스트 데이터 로드
  • 테스트 질문으로 RAG 애플리케이션에 질의
  • 응답 평가
  • 콘솔에 결과 표시
  • evals/experiments/ 디렉토리에 결과를 CSV로 저장

축하해요! 완전한 평가 설정이 실행되고 있어요. 🎉


평가 커스터마이즈

테스트 케이스 추가

evals.pyload_dataset() 함수를 수정해서 더 많은 테스트 질문을 추가해요.

from ragas import Dataset

def load_dataset():
    """평가용 테스트 데이터셋 로드."""
    dataset = Dataset(
        name="test_dataset",
        backend="local/csv",
        root_dir=".",
    )

    data_samples = [
        {
            "question": "What is Ragas?",
            "grading_notes": "Ragas is an evaluation framework for LLM applications",
        },
        {
            "question": "How do metrics work?",
            "grading_notes": "Metrics evaluate the quality and performance of LLM responses",
        },
        # 여기에 테스트 케이스를 더 추가해요
    ]

    for sample in data_samples:
        dataset.append(sample)

    dataset.save()
    return dataset

평가 메트릭 커스터마이즈

템플릿은 커스텀 평가 로직을 위한 DiscreteMetric을 포함해요. 다음과 같이 평가를 커스터마이즈할 수 있어요.

  1. 메트릭 프롬프트 수정 - 평가 기준 변경
  2. 허용 값 조정 - 유효한 출력 카테고리 업데이트
  3. 메트릭 추가 - 다른 측면에 대한 추가 메트릭 생성

메트릭 수정 예시:

from ragas.metrics import DiscreteMetric
from ragas.llms import llm_factory

my_metric = DiscreteMetric(
    name="custom_evaluation",
    prompt="Evaluate this response: {response} based on: {context}. Return 'excellent', 'good', or 'poor'.",
    allowed_values=["excellent", "good", "poor"],
)

다음 단계 (What's Next?)

도움 받기 (Getting Help)