최소 구성
- golden set: 실제 사용자 질문과 기대 조건
- rubric: 정답/부분 정답/실패를 나누는 채점 기준
- runner: 같은 입력을 모델에 넣고 결과를 저장하는 스크립트
- report: 실패 케이스와 재현 입력을 남기는 문서
평가 케이스 예시
evals/refund-policy.json
{
"id": "refund-policy-001",
"input": "환불 규정이 어떻게 돼?",
"expected": ["환불 가능 기간을 말한다", "출처 문서명을 포함한다"],
"forbidden": ["근거 없이 정책을 단정한다", "없는 링크를 만든다"],
"tags": ["policy", "rag", "customer-support"]
}실패 리포트 예시
eval-report.md
# AI Eval Report
- total: 20
- passed: 17
- failed: 3
## Failed cases
1. refund-policy-001
- missing citation
- answer used stale policy wording통과 기준
- 핵심 케이스는 100% 통과해야 배포 가능
- 출처가 필요한 답변은 citation 누락 시 실패
- 모델 변경 전후 결과를 같은 표로 비교
- 실패 케이스는 RAG/프롬프트/모델/데이터 문제로 분류