AI 에이전트 평가하기

AI 에이전트 평가하기 (Evaluate an AI agent)

이 튜토리얼에서는 Ragas로 AI 에이전트를 평가하는 방법을 배워요. 예제는 원자적 연산과 함수 호출 기능으로 복잡한 수식을 푸는 수학 에이전트예요. 평가 주도 개발(evaluation-driven development)로 에이전트를 평가하고 개선하는 흐름을 익힐 수 있어요.

출처: 문서

본문

graph TD
    A[User Input<br/>Math Expression] --> B[MathToolsAgent]

    subgraph LLM Agent Loop
        B --> D{Need to use a Tool?}
        D -- Yes --> E[Call Tool<br/>add/sub/mul/div]
        E --> F[Tool Result]
        F --> B
        D -- No --> G[Emit Final Answer]
    end

    G --> H[Final Answer]

먼저 원자적 연산과 함수 호출 기능으로 수학 수식을 푸는 간단한 에이전트를 테스트해 볼게요.

python -m ragas_examples.agent_evals.agent

다음으로 에이전트를 위한 몇 가지 샘플 수식과 기대 출력을 만들고, 이를 CSV 파일로 변환해요.

import pandas as pd

dataset = [
    {"expression": "(2 + 3) * (4 - 1)", "expected": 15},
    {"expression": "5 * (6 + 2)", "expected": 40},
    {"expression": "10 - (3 + 2)", "expected": 5},
]

df = pd.DataFrame(dataset)
df.to_csv("datasets/test_dataset.csv", index=False)

에이전트의 성능을 평가하기 위해, 에이전트 출력이 기대 출력과 일정 오차 범위 안에 있는지 비교해서 1/0을 돌려주는 비-LLM 지표를 정의해요.

from ragas.metrics import numeric_metric
from ragas.metrics.result import MetricResult

@numeric_metric(name="correctness")
def correctness_metric(prediction: float, actual: float):
    """Calculate correctness of the prediction."""
    if isinstance(prediction, str) and "ERROR" in prediction:
        return 0.0
    result = 1.0 if abs(prediction - actual) < 1e-5 else 0.0
    return MetricResult(value=result, reason=f"Prediction: {prediction}, Actual: {actual}")

이제 테스트 데이터셋에서 에이전트를 실행하고 지표로 평가한 뒤 결과를 CSV 파일에 저장하는 실험 루프(experiment loop)를 작성해요.

from ragas import experiment

@experiment()
async def run_experiment(row):
    expression = row["expression"]
    expected_result = row["expected"]

    # Get the model's prediction
    prediction = math_agent.solve(expression)

    # Calculate the correctness metric
    correctness = correctness_metric.score(prediction=prediction.get("result"), actual=expected_result)

    return {
        "expression": expression,
        "expected_result": expected_result,
        "prediction": prediction.get("result"),
        "log_file": prediction.get("log_file"),
        "correctness": correctness.value
    }

이제 에이전트에 어떤 변경을 가하든 실험을 실행해서 성능에 어떤 영향을 주는지 확인할 수 있어요.

예제를 처음부터 끝까지 실행하기

  1. OpenAI API 키 설정하기
export OPENAI_API_KEY="your_api_key_here"
  1. 평가 실행하기
python -m ragas_examples.agent_evals.evals

축하해요! Ragas로 AI 에이전트 평가를 성공적으로 마쳤어요. 이제 experiments/experiment_name.csv 파일을 열어 결과를 확인하면 돼요.

더 알아보기 (Learn more)