가이드
지금 동작하는 것
오늘 Oloproof로 무엇을 평가할 수 있는지, 어떻게 이용하는지(Python SDK, oloproof.yaml과 CLI, 또는 브라우저), 그리고 무엇이 아직 만들어지지 않았는지를 설명합니다. 이 내용은 2026년 10월 8일의 기능 감사에서 가져왔으며, 이 내부 검토는 각 항목을 계획이 아니라 코드와 테스트에 대조해 확인했습니다.
이 페이지를 읽는 법
"SDK"는 Python 패키지(import oloproof)를 뜻합니다. "YAML"은 oloproof.yaml에서 oloproof run으로 실행하는 프로젝트를 뜻합니다. 둘은 같은 표면이 아닙니다. 몇몇 평가기는 한쪽에만 있으며, 이 페이지는 어느 쪽인지 밝힙니다. "브라우저"는 호스팅 워크벤치를 뜻하며, oloproof push로 보낸 것을 보여 줍니다. 코드나 YAML로 정의하지 않은 평가를 실행하지는 않습니다.
Oloproof는 여러분의 시스템을 호출할 뿐, 호스팅하거나 샌드박스에 넣거나 초기화하지 않습니다. 실행 중의 상태, 세션, 도구의 부수 효과는 여러분의 애플리케이션이 책임집니다.
시스템 종류별
| 여러분의 시스템 | 동작하는 것 | 위치 | 만들어지지 않은 것 |
|---|---|---|---|
| 분류기 또는 구조화된 출력 | 정확 일치, 포함, 정규식, JSON 스키마, 루브릭 심사 모델, 확률 심사 모델, 모델 분류기; 구간이 붙은 통과율 | SDK와 YAML; model_classifier, probability_judge, cascade는 YAML 전용 | n/a |
| 텍스트 생성, 요약, 추출 | 자유 텍스트에 대한 같은 검사, 루브릭 심사 모델, 사람 라벨과의 심사 모델 일치도, 쌍별 선호 | SDK와 YAML; 선호는 oloproof prefer 명령 | BLEU, ROUGE, 임베딩 유사도(@evaluator로 직접 작성) |
| 블랙박스로 실행하는 RAG | 시스템이 기록하거나 반환하는 검색 아티팩트로부터 적중률, 재현율, MRR, nDCG, 인용 유효성, 근거성 및 인용 뒷받침 심사 모델 | SDK와 YAML | 진단: diagnose에는 단계별 시스템이 필요 |
| 단계별로 구성한 RAG | 위의 모든 것, 단계별 캐싱, 그리고 대조군 옆에서 정답 컨텍스트, top-k, 재순위기 변경을 적용하는 oloproof diagnose | SDK @rag_system, YAML system.rag, CLI diagnose | 그 세 가지를 넘는 개입 |
| 도구를 쓰는 에이전트 | 기록된 궤적으로부터 단계 제한, 필수 및 금지 도구, 도구 순서, 루프, 제약 | SDK와 YAML | LLM이 판단하는 궤적 품질 검사 |
| 멀티 에이전트 시스템 | 라우팅, 에이전트별 도구 권한, 핸드오프 제한 | SDK와 YAML | n/a |
| 에이전트 재실행 | 체크포인트에서 케이스를 다시 실행해 단계가 필요했는지 라벨링 | SDK 전용(replay_case), 체크포인트를 지원하는 시스템에 한함 | CLI 명령 |
| 이진 분류 모델 | 정확도, 정밀도, 재현율, Brier, 로그 손실, 순위(AUC) | SDK와 YAML predictive: | n/a |
| 다중 클래스 모델 | 클래스마다 하나의 블록(일대다) | SDK와 YAML | 매크로 또는 마이크로 평균 |
| 회귀 모델 | 선언된 target_range 안의 절대 오차 | SDK와 YAML | 제곱 오차, R 제곱, 무한 범위 오차 |
| 멀티턴 대화 | 스크립트의 모든 턴에 답했는지, 그리고 대화 전체에 대한 루브릭 심사 모델 | SDK 전용(ConversationCompleted, ConversationJudge) | YAML 타입, 턴 단위 점수, 사용자 시뮬레이터, 대화 재실행 |
| 이미지, 오디오, 비디오 | 기본 지원 없음: 케이스가 URL이나 인코딩된 파일을 시스템에 전달할 수 있고, @evaluator가 출력을 검사할 수 있음 | n/a | 심사 모델은 JSON 텍스트만 봄; 미디어 아티팩트나 렌더링 없음 |
멀티턴 우회 방법: 각 턴을 하나의 케이스로 만들고 한 대화의 턴들에 같은 group_id를 주면, 분석이 이를 하나의 클러스터로 다룹니다(클러스터). 이때 각 턴은 하나의 기록된 대화가 아니라 별개의 호출입니다.
시스템 연결하기
- Python 호출 가능 객체: SDK의 @system 또는 YAML의 system.callable: module:function. 케이스의 input을 받아 딕셔너리를 반환합니다. 동기 함수와 비동기 함수 모두 동작합니다.
- HTTP: url, method, output_path, artifacts, timeout_s를 갖는 system.http. 케이스 입력은 JSON 본문으로 전송되고 응답은 JSON으로 읽힙니다. 헤더와 인증은 아직 설정할 수 없으므로, 키가 필요한 엔드포인트는 키를 추가하는 호출 가능 객체 뒤에 두십시오.
- 사용자 정의 평가기: SDK의 @evaluator. oloproof.yaml은 아직 이를 지정할 수 없습니다.
워크플로
| 워크플로 | 동작하는 것 | 만들어지지 않은 것 |
|---|---|---|
| 두 버전 비교 | 쌍 우월성, 비열등성, 동등성; 다중성 통제가 있는 슬라이스 | n/a |
| CI | 정책의 block_on에 따른 oloproof gate 종료 코드, 승인, 서명된 레코드; 풀 리퀘스트 요약(--summary markdown) | n/a |
| 사람 검토 | 파일이나 터미널에서 받는 라벨; 호스팅 워크스페이스에서 검토자를 배정하는 브라우저 검토 대기열 | 로컬 프로젝트의 브라우저 검토 대기열 |
| 브라우저 워크벤치 | oloproof push 후의 실행, 케이스, 비교, 진단, 평가기, 검토, 트래픽 | 데이터셋 가져오기, 심사 모델 작성, 일정, 알림, 사후 분석(계획됨으로 표시) |
| 로컬 브라우저 | n/a | 워크벤치를 로컬에서 제공하는 CLI 명령은 없으며, 워크벤치는 호스팅됩니다 |
무엇을 어떻게 테스트했는가
위의 모든 계열에는 픽스처와 모의 공급자로 실행하는 자동화 테스트가 있습니다. 실제 모델을 쓰는 실제 시스템에 대한 실행은 RAG, 단일 에이전트, 멀티턴 대화에 대해 기록되어 있으며, 예측 모델이나 멀티 에이전트 시스템에 대해서는 아직 없습니다. 릴리스를 결정하는 통계 방법은 각각 자체 감사로 인정됩니다. 인정된 구간이 없는 지표는 구간으로 규칙을 결정하지 않으며, 그것이 필요한 규칙은 사유와 함께 MANUAL_REVIEW 또는 INSUFFICIENT_EVIDENCE를 반환합니다.