Community연구 & 데이터 분석github.com

tidewatch-fish/ai-eval-toolkit

LLM 및 AI 에이전트 자동 평가를 위한 확장 가능한 툴킷. 루브릭 심사자, 데이터세트, 채점 스크립트, 회귀 테스트를 포함합니다.

ai-eval-toolkit란 무엇인가요?

이 스킬은 LLM과 AI 에이전트의 출력 품질을 자동으로 평가하기 위한 종합 툴킷입니다. 금융 도메인에 특화된 루브릭 심사자를 통해 정확성, 완전성, 도움성 등 여러 차원에서 응답을 평가하며, 각 차원은 고유한 트리거 조건과 판단 규칙을 가집니다. 사용자는 미리 정의된 JSON 스키마에 따라 평가 케이스를 준비하고, Python 스크립트를 사용하여 일괄 평가 및 점수 집계를 수행할 수 있습니다. 또한 회귀 테스트 세트와 인간 평가 비교 기능을 통해 평가 체계의 일관성을 유지하고 지속적으로 개선할 수 있습니다. 이 툴킷은 Cursor, Claude Code 등 다양한 AI 에이전트 플랫폼에서 사용 가능하며, 금융 답변 평가 시 외부 지식이나 상업적 의견을 배제한 객관적인 평가를 보장합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add tidewatch-fish/ai-eval-toolkit

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

금융 루브릭 평가기

고정된 금융 품질 규칙을 사용하여 답변을 평가합니다. 문제별로 임시 기준을 생성하거나 평가 과정에서 새로운 금융 조언을 제공하지 마십시오.

평가 실행

1. 규칙 및 데이터 계약 읽기

먼저 다음을 읽으십시오:

  • references/finance-rubric.json: 차원 트리거 조건, 통과 조건, 불통과 조건 및 경계 규칙.
  • references/data-schema.md: 입력/출력 필드 및 데이터 제약 사항.

2. 작업 준비

사용자가 제공한 내용을 assets/eval-case-template.json 구조로 정리합니다. 하나의 차원만 평가할 경우 dimension_id를 지정하십시오:

python scripts/prepare_eval.py --input assets/sample-case.json

동일한 답변을 전체 평가할 경우, 다음 명령어로 세 개의 분리된 작업을 생성합니다:

python scripts/prepare_eval.py --input assets/sample-case.json --all-dimensions

일괄 입력은 JSON 배열 또는 JSONL을 사용할 수 있습니다. 각 레코드는 여전히 하나의 차원에만 해당됩니다. --all-dimensions를 사용하면 스크립트가 각 레코드에 대해 세 개의 독립적인 작업을 펼칩니다.

3. 각 작업을 독립적으로 판단

다음 순서를 엄격히 따르십시오:

  1. 현재 차원의 모든 trigger_conditions를 확인합니다. 하나라도 충족되지 않으면 '해당 없음'을 반환합니다.
  2. 현재 차원의 judgment_rule, pass_conditions, fail_conditions 및 boundary_rules만 읽습니다.
  3. 입력의 참고 자료, 모범 답안, 대화 컨텍스트 및 작업 요구 사항만 사용하여 판단합니다.
  4. 평가 대상 답변에서 직접적인 증거를 인용하여 구조화된 판단을 출력합니다.

항상 차원을 분리하십시오:

  • 표현된 내용의 옳고 그름은 정확성에 속합니다.
  • 정보 누락은 완전성에 속합니다.
  • 제공된 내용의 명확성, 이해 가능성, 실행 가능성은 도움성에 속합니다.
  • 동일한 문제를 여러 차원에서 동일한 이유로 반복해서 잘못 판단하지 마십시오.

출력:

{
  "case_id": "fin-001",
  "dimension_id": "accuracy",
  "result": "오류",
  "evidence": ["답변 중 원문 또는 정확한 위치"],
  "reason": "오류: 핵심 결론이 참고 자료와 반대입니다."
}

결과 의미:

  • 통과: 현재 차원을 충족합니다.
  • 오류: 현재 차원을 위반합니다.
  • 해당 없음: 현재 차원이 적용되지 않거나 증거가 부족합니다. '해당 없음'은 '통과'가 아니며, 통계 시 반드시 제외해야 합니다.

4. 검증 및 집계

단일 판단 검증:

python scripts/score_result.py --input assets/sample-judgment.json

일괄 입력은 JSON 배열 또는 JSONL을 사용할 수 있습니다. 스크립트는 전체 및 차원별 '통과', '오류', '해당 없음' 수, 적용률 및 통과율을 출력합니다. 각 판단에 human_judgment.result가 포함되어 있으면 사람-기계 일치율, 오류 샘플 재현율 및 오검출률도 계산합니다.

python scripts/score_result.py --input experiment/judgments.example.jsonl --summary-only

스크립트는 더 이상 판단을 점수로 매핑하지 않습니다. '해당 없음'은 항상 독립 상태로 유지되며 집계 통계에서 별도로 제외됩니다.

금융 영역 경계

  • 주어진 참고 자료, 모범 답안 및 컨텍스트에 따라서만 판단합니다.
  • 정확성에 대해 신뢰할 수 있는 검증 자료가 없으면 '해당 없음'을 반환하고, 외부 상식으로 보충 판단하지 마십시오.
  • 모든 금융 답변에 면책 조항이 필요하다고 가정하지 마십시오. 참고 자료 또는 작업 요구 사항이 명시적으로 요구하는 경우에만 해당 차원에 따라 판단합니다.
  • 정확성 차원에서 근거 없는 수익, 승인, 보상, 기한 또는 무위험 보장은 직접 불통과로 판단합니다.
  • '금융 위험이 높다'는 이유로 사용자 질문의 필수 정보 범위를 확대하지 마십시오.

교정 규칙

  1. experiment/regression-set.example.jsonl을 사용하여 최소 회귀 세트를 구축합니다.
  2. 개발 세트를 사용하여 오판을 찾고 references/finance-rubric.json을 수정합니다.
  3. rubric_version을 증가시키고 수정에 사용하지 않은 홀드아웃 세트로 검증합니다.
  4. references/report-checklist.md에 따라 버전, 재현율 및 오검출률을 기록합니다.

특정 제품의 금리, 수수료, 기한 또는 자격을 일반 루브릭에 작성하지 마십시오. 이러한 사실은 샘플의 reference_context에 넣으십시오.

함께 제공되는 리소스

  • assets/sample-case.json: 바로 실행 가능한 정기 예금 샘플.
  • assets/sample-judgment.json: 해당 판단 예시.
  • experiment/regression-set.example.jsonl: 금융 경계 최소 회귀 세트.
  • experiment/judgments.example.jsonl: 바로 실행 가능한 일괄 판단 및 인간 레이블 예시.
  • references/report-checklist.md: 보고 기준 및 버전 추적 체크리스트.

관련 스킬