Agent skill
rag-quality
RAG 시스템 품질 평가 및 개선을 위한 스킬입니다. RAGAS 기반 LLM-as-Judge 평가, 사용자 페르소나 시뮬레이션, 합성 데이터 생성, 평가 결과 저장 및 분석 기능을 제공합니다.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/rag-quality-backup-dir-seo-jinseok-regulation-manager
SKILL.md
RAG Quality Evaluation Skill
RAG 시스템의 품질을 평가하고 개선하기 위한 포괄적인 스킬입니다.
핵심 기능
1. RAGAS 기반 자동 평가
python
from src.rag.domain.evaluation import RAGQualityEvaluator
from src.rag.infrastructure.storage import EvaluationStore
# 평가기 초기화
evaluator = RAGQualityEvaluator(judge_model="gpt-4o")
store = EvaluationStore()
# 단일 턴 평가
result = evaluator.evaluate_single_turn(
query="휴학 절차가 어떻게 되나요?",
contexts=["학칙 제15조에 따르면..."],
answer="학칙 제15조에 따라 휴학 신청은..."
)
# 결과 저장 및 분석
store.save_evaluation(result)
print(f"전체 점수: {result.overall_score:.2f}")
print(f"합격 여부: {result.passed}")
2. 사용자 페르소나 테스트
python
from src.rag.domain.evaluation.personas import PersonaManager
persona_mgr = PersonaManager()
# 특정 페르소나로 테스트
freshman_queries = persona_mgr.generate_queries(
persona="freshman",
count=10,
topic="휴학"
)
# 모든 페르소나로 통합 테스트
all_queries = persona_mgr.generate_all_personas_queries(
queries_per_persona=5
)
3. 합성 테스트 데이터 생성
python
from src.rag.domain.evaluation.synthetic_data import SyntheticDataGenerator
from src.rag.infrastructure.json_loader import JSONDocumentLoader
loader = JSONDocumentLoader("data/output/규정집.json")
generator = SyntheticDataGenerator(loader)
# 문서에서 질문 자동 생성
queries = generator.generate_queries_from_documents(
num_questions=50,
difficulty="mixed"
)
# 규정 기반 시나리오 생성
scenarios = generator.generate_scenarios_from_regulations(
regulation="학칙",
num_scenarios=10
)
4. 평가 결과 분석
python
from src.rag.domain.evaluation.quality_analyzer import QualityAnalyzer
analyzer = QualityAnalyzer()
# 약점 분석
weaknesses = analyzer.analyze_weaknesses(evaluation_results)
# 기준선과 비교
improvement = analyzer.compare_results(baseline_results, new_results)
# 개선 권장사항 생성
recommendations = analyzer.generate_recommendations(weaknesses)
워크플로우
기준선 평가 실행
bash
# 전체 페르소나로 기준선 평가
uv run python -c "
from src.rag.domain.evaluation import RAGQualityEvaluator
from src.rag.domain.evaluation.personas import PersonaManager
from src.rag.infrastructure.storage import EvaluationStore
evaluator = RAGQualityEvaluator()
store = EvaluationStore()
persona_mgr = PersonaManager()
# 기준선 평가 실행
for persona_id in persona_mgr.list_personas():
queries = persona_mgr.generate_queries(persona_id, count=5)
for query in queries:
# RAG 시스템 실행
answer, contexts = run_rag_query(query)
result = evaluator.evaluate_single_turn(query, contexts, answer)
result.persona = persona_id
store.save_evaluation(result)
# 통계 출력
stats = store.get_statistics()
print(f'평균 점수: {stats.avg_overall_score:.2f}')
print(f'합격률: {stats.pass_rate:.1%}')
"
개선 루프 실행
bash
# 자동 평가 및 개선
uv run regulation --loop --auto
# 특정 메트릭 집중
uv run regulation --loop --focus faithfulness
# 특정 페르소나만 테스트
uv run regulation --loop --persona freshman
대시보드 실행
bash
# Gradio 대시보드 시작
uv run gradio src.rag.interface.web.quality_dashboard:app
# 또는 스크립트 실행
python scripts/launch_quality_dashboard.py
4가지 핵심 메트릭
| 메트릭 | 목표 | 설명 |
|---|---|---|
| Faithfulness | 0.90+ | 할루시네이션 감지 |
| Answer Relevancy | 0.85+ | 답변 관련성 |
| Contextual Precision | 0.80+ | 검색 정확도 |
| Contextual Recall | 0.80+ | 정보 완전성 |
사용자 페르소나
- freshman (신입생) - 초급, 간단한 용어
- graduate (대학원생) - 고급, 학술적 용어
- professor (교수) - 고급, 공식적 용어
- staff (교직원) - 중급, 행정적 용어
- parent (학부모) - 초급, 일상적 용어
- international (외국인 유학생) - 초급, 간단한 한국어/영어
출력 파일
data/evaluations/eval_YYYYMMDD_HHMMSS.json- 평가 결과data/evaluations/statistics.json- 통계 요약data/test_queries/synthetic_queries.json- 합성 데이터data/test_queries/persona_queries_*.json- 페르소나별 쿼리
Didn't find tool you were looking for?