본문으로 건너뛰기

가이드

구성 참조

oloproof.yaml과 release.yaml의 모든 필드를, 파일을 읽는 모델에서 가져온 타입, 기본값, 허용 값, 예시와 함께 정리합니다. 필드를 찾아볼 때 쓰세요. 작업 흐름을 배우려면 빠른 시작과 게이팅 페이지를 읽으세요.

두 파일 모두 무엇이든 실행되기 전에 검증됩니다. 알 수 없는 필드, 철자가 틀린 필드, 잘못된 타입의 값은 구성 오류이며, 명령은 케이스를 하나도 실행하지 않고 2로 종료합니다. 두 파일 모두 JSON Schema가 있어, JSON Schema를 읽는 편집기라면 자동 완성에 쓸 수 있습니다. 설치된 패키지가 결과 스키마와 함께 현재 디렉터리 아래의 schemas/v1/에 이를 씁니다: python -m oloproof_core.models.schema_export(두 파일은 project_config.schema.json과 release_policy.schema.json입니다).

아래 표에서 "필수"는 그 필드가 없으면 파일이 거부된다는 뜻이며, 다른 필드에는 생략했을 때 쓰이는 값이 표시됩니다.

oloproof.yaml 한눈에 보기

작지만 완전한 프로젝트입니다. Python 함수를 로컬에서 실행하고, 네트워크도 키도 필요 없으며, oloproof init이 만드는 골격과 같은 모양입니다.

# oloproof.yaml
version: 1
project: support-bot
dataset: datasets/support.jsonl
system:
  name: support-bot
  callable: app.bot:answer
evaluators:
  - type: exact_match
    criterion: correct_label
    field: label

최상위 필드

필드타입기본값의미
version11파일 형식 버전. 1만 있습니다.
project문자열필수프로젝트 이름으로, 보고서에 표시되고 푸시할 때 쓰입니다.
dataset경로필수프로젝트 기준 상대 경로의 JSONL 스위트 파일. 행의 형식은 스위트에 설명되어 있습니다.
system매핑필수테스트 대상 시스템. 아래를 보세요.
concurrency매핑system: 8, judge: 4동시에 실행되는 시스템 호출과 심사 모델 호출의 수.
evaluators리스트필수, 하나 이상각 케이스에서 측정하는 것. 각 항목에는 type이 있습니다.
metrics리스트비어 있음각 평가기 기준이 이미 이루는 지표 외의 추가 지표.
predictive매핑없음분류기의 레이블, 점수, 정답이 있는 곳. 예측 모델을 보세요.
slices문자열 리스트비어 있음탐색용 슬라이스: metadata.<key>, relevant_position 또는 context_truncated. 게이트에는 도달하지 않습니다. 슬라이스를 보세요.
min_slice_support정수, 1 이상30적격 케이스가 이보다 적으면 슬라이스는 추정치만 보이고 구간은 보이지 않습니다.
replicates정수, 1 이상1모든 케이스를 이 횟수만큼 측정합니다. 단위는 여전히 케이스입니다. 반복은 구간을 계산하기 전에 케이스 안에서 집계됩니다.
pricing리스트비어 있음모델별로 백만 토큰당 지불하는 금액. 없으면 비용은 토큰으로만 보고되고 달러로는 보고되지 않습니다.
egress문자열 리스트비어 있음oloproof push가 호스팅 워크스페이스로 보낼 수 있는 원본 내용. 결과와 실행을 보세요.

concurrency

필드타입기본값
system정수, 1 이상8
judge정수, 1 이상4

pricing 항목

Oloproof는 가격표를 제공하지 않습니다. 각 항목은 평가기의 model:이 쓰는 것과 정확히 같은 이름으로 모델을 지정합니다.

필드타입기본값
model문자열필수
input_per_mtok숫자, 0 이상필수
output_per_mtok숫자, 0 이상필수
# oloproof.yaml
version: 1
project: support-bot
dataset: datasets/support.jsonl
system:
  name: support-bot
  callable: app.bot:answer
evaluators:
  - type: exact_match
    criterion: correct_label
    field: label
pricing:
  - model: my-judge-model
    input_per_mtok: 0.15
    output_per_mtok: 0.6
egress: [raw_outputs]

system

시스템에는 callable, http, rag 중 정확히 하나가 필요합니다.

필드타입기본값의미
name문자열필수시스템 이름. 버전 식별자의 일부입니다.
version문자열없음이 버전에 붙이는 여러분의 레이블. HTTP 시스템에는 필수입니다. 식별자의 일부이므로, 바꾸면 캐시된 실행이 무효화됩니다.
callablemodule:attribute없음동기 또는 비동기 Python 함수. 케이스의 input을 받아 출력을 반환합니다.
http매핑없음케이스마다 한 번 호출되는 엔드포인트. 아래를 보세요.
rag매핑없음@rag_system으로 선언한 단계형 RAG 클래스. 아래를 보세요.
config매핑비어 있음시스템 버전과 함께 기록되는 자유 형식 설정. 바꾸면 버전이 바뀝니다.
code_pathsglob 패턴 리스트비어 있음내용이 호출 가능 시스템의 버전에 들어가는 소스 파일. 없으면 호출 가능 객체 자신의 모듈만 해시됩니다.
timeout_s0보다 큰 숫자120호출 가능 시스템의 호출당 시간 제한. HTTP 시스템은 대신 http.timeout_s를 씁니다.
records아티팩트 종류 리스트비어 있음retrieval/v1처럼 호출 가능 시스템이 기록하는 아티팩트 종류. HTTP 또는 RAG 시스템에서는 거부됩니다.

system.http

필드타입기본값의미
url문자열필수각 케이스를 보내는 곳.
methodGET, POST 또는 PUTPOSTHTTP 메서드.
output_path점으로 구분한 경로없음JSON 응답의 어느 필드가 출력인지, 예: result.answer. 없으면 본문 전체입니다.
artifacts종류에서 점 경로로의 매핑비어 있음아티팩트로 기록되는 응답 필드, 예: retrieval/v1: debug.retrieval.
version문자열없음system.version이 없을 때 시스템 버전으로 쓰입니다. HTTP 시스템에는 둘 중 하나가 필요합니다.
timeout_s0보다 큰 숫자30요청당 시간 제한.
# oloproof.yaml
version: 1
project: support-api
dataset: datasets/support.jsonl
system:
  name: support-api
  version: "2026-10-08"
  http:
    url: http://localhost:8000/answer
    output_path: answer
    artifacts:
      retrieval/v1: debug.retrieval
evaluators:
  - type: hit_rate
    k: 5

요청과 응답의 계약, 그리고 타임아웃과 HTTP 오류 시 일어나는 일은 결과와 실행에 있습니다.

system.rag

필드타입기본값의미
objectmodule:attribute필수@rag_system으로 선언한 클래스 또는 그 인스턴스.
depth정수, 1 이상클래스의 값검색이 반환하는 패시지 수.
top_k정수, 1 이상클래스의 값그중 생성에 도달하는 수.
token_budget정수, 1 이상클래스의 값컨텍스트의 토큰 제한. 클래스의 count_tokens(passage)가 필요합니다.
index_version문자열클래스의 값검색 식별자의 일부. 인덱스를 다시 만들 때마다 바꾸세요.

여기서 준 설정은 클래스가 선언한 설정보다 우선합니다. 단계형 시스템은 자신의 retrieval/v1, context/v1, citations/v1 아티팩트를 스스로 기록하므로, 그 옆의 records는 거부됩니다. RAG를 보세요.

evaluators

모든 항목은 type과 다음 두 공통 필드를 받습니다.

필드타입기본값의미
criterion문자열유형에 기본값이 없으면 필수측정하는 것의 이름. 각 기준은 지표이며, 규칙의 metric:이 이를 가리킵니다.
on_execution_errormissing 또는 failmissing시스템 호출이 실패한 케이스를 이 기준에서 무엇으로 셀지. missing은 관측되지 않은 것으로 분모에 남기고, fail은 실패로 셉니다.

fail은 통과/실패 평가기에만 적용되며, 점수 평가기에 쓰면 구성 오류입니다. on_execution_error는 YAML 필드입니다. SDK 평가기 클래스는 그런 인수를 받지 않으며, 오류가 난 케이스는 누락으로 셉니다.

평가기 유형

"읽는 것"은 평가기의 판정이 무엇에 달려 있는지를 나열하며, 이는 캐시된 판정의 키이기도 합니다. "SDK"는 oloproof.evaluators의 클래스 이름입니다.

YAML type읽는 것SDK네트워크나 키 필요 여부
exact_matchoutput, expectedExactMatch아니요
containsoutput, expectedContains아니요
regexoutputRegex아니요
json_schemaoutputJsonSchema아니요
rubric_judgeinput, output, expectedRubricJudge예, 모델 제공자
model_classifieroutput(또는 text가 지정한 필드), 선택적으로 premiseYAML 전용예, TEI 호환 서버
probability_judge케이스와 출력YAML 전용예, 로그 확률을 반환하는 OpenAI 호환 제공자
cascade두 단계와 같음YAML 전용예
hit_rate, recall, mrr, ndcgartifacts.retrieval, expectedHitRate, Recall, MRR, NDCG아니요
citation_validityartifacts.citations, artifacts.contextCitationValidity아니요
groundedness_judgeinput, output, artifacts.contextGroundedness예
citation_support_judgeinput, output, artifacts.context, artifacts.citationsCitationSupport예
agent_max_stepsartifacts.agent_trajectoryAgentMaxSteps아니요
agent_tool_calledartifacts.agent_trajectoryAgentToolCalled아니요
agent_no_tool_loopartifacts.agent_trajectoryAgentNoToolLoop아니요
agent_tool_sequenceartifacts.agent_trajectory, expectedAgentToolSequence아니요
agent_no_undeclared_toolartifacts.agent_trajectory, expectedAgentNoUndeclaredTool아니요
agent_constraints_satisfiedartifacts.agent_trajectoryAgentConstraintsSatisfied아니요
agent_routeartifacts.agent_trajectoryAgentRoute아니요
agent_tool_permissionsartifacts.agent_trajectoryAgentToolPermissions아니요
agent_max_handoffsartifacts.agent_trajectoryAgentMaxHandoffs아니요
predictive_correctoutput과 expected의 레이블 필드PredictiveCorrect아니요
predictive_recall위와 같음PredictiveRecall아니요
predictive_precision위와 같음PredictivePrecision아니요
predictive_absolute_error위와 같음, 숫자AbsoluteError아니요
predictive_brieroutput의 점수 필드, expected의 레이블Brier아니요
predictive_log_loss위와 같음LogLoss아니요
predictive_ranking위와 같음PredictiveRanking아니요
YAML 유형 없음artifacts.conversationConversationCompleted(SDK 전용)아니요
YAML 유형 없음expected, artifacts.conversationConversationJudge(SDK 전용)예
YAML 유형 없음여러분이 선언한 것@evaluator와 CustomEvaluator(SDK 전용)여러분의 선택

호스팅 모델을 호출하는 심사 모델은 케이스 내용을 그 제공자에게 보내며, 요금은 그 제공자가 청구합니다. 키는 api_key_env에 지정한 환경 변수에서 읽으며, Oloproof는 이 파일들에 키를 저장하지 않습니다.

결정론적 평가기

유형필드타입기본값
exact_matchfield출력 안의 점 경로없음: 출력 전체
exact_matchexpected_fieldexpected 안의 점 경로없음: field와 같음
exact_matchstrip불리언true
exact_matchcasefold불리언false
containsfield, expected_fieldexact_match와 같음없음
regexpattern정규 표현식필수
regexfield점 경로없음
regexpass_ifmatch 또는 no_matchmatch
json_schemaschema인라인 JSON Schema, 또는 프로젝트 기준 상대 경로의 JSON 파일필수
json_schemafield점 경로없음

모델 심사 모델

rubric_judge, groundedness_judge, citation_support_judge는 다음 필드를 공유합니다. rubric_judge에는 rubric_file과 rubric_text 중 정확히 하나가 필요하며, 두 RAG 심사 모델은 최대 하나를 받고 없으면 내장 루브릭을 씁니다. 이들의 criterion 기본값은 groundedness와 citation_support입니다.

필드타입기본값
provideranthropic, openai 또는 openai_compatible필수
model문자열필수
rubric_file경로없음
rubric_text문자열없음
api_key_env환경 변수 이름ANTHROPIC_API_KEY 또는 OPENAI_API_KEY
base_urlURL제공자의 값
temperature숫자0
max_tokens정수, 1 이상512
timeout_s0보다 큰 숫자60

probability_judge는 형식이 정해진 질문을 하고 모델의 확률을 읽습니다.

필드타입기본값
provideropenai 또는 openai_compatible필수
model문자열필수
question문자열필수
formyes_no, choice 또는 score필수
min_probability(0, 1] 범위의 숫자필수
options답에서 설명으로의 매핑choice에 필요
pass_options답의 리스트choice에 필요
levels수준에서 설명으로의 매핑, 가장 낮은 것부터score에 필요
pass_at_least수준 하나score에 필요
calibrationslope(0보다 큼), intercept, from_version없음
api_key_env, base_url위와 같음없음
timeout_s0보다 큰 숫자60

cascade는 저렴한 심사 모델을 먼저 실행하고 불확실한 케이스를 상위로 넘깁니다.

필드타입기본값
firstprobability_judge 항목필수
thenrubric_judge 또는 probability_judge 항목필수
escalate_between확률 두 개필수

각 단계는 캐스케이드 자신의 criterion을 심사하며, 다른 기준을 지정한 단계는 거부됩니다.

model_classifier는 TEI 호환 서버의 학습된 모델로 텍스트에 점수를 매깁니다.

필드타입기본값
model문자열필수
base_urlURL필수
label읽을 분류기 레이블필수
min_score 또는 max_score[0, 1] 범위의 숫자, 정확히 하나필수
text분류할 필드output
premise쌍 분류기를 위한 두 번째 텍스트없음
api_key_env환경 변수 이름없음
timeout_s0보다 큰 숫자30

RAG 평가기

유형필드타입기본값
hit_rate, recall, mrr, ndcgk정수, 1 이상hit_rate와 recall은 5, mrr과 ndcg는 10
hit_rate, recall, mrr, ndcgrelevance_unitdoc 또는 chunkdoc
hit_rate, recall, mrr, ndcgcriterion문자열<type>_at_<k>, 예: hit_rate_at_5
citation_validityrequire_citations불리언false
citation_validitycriterion문자열citations_valid

에이전트 평가기

유형필드타입기본값
agent_max_stepsmax_steps정수, 1 이상필수
agent_tool_calledtool_name문자열필수
agent_tool_calledmin_calls정수, 1 이상1
agent_no_tool_loopmax_repeats정수, 1 이상2
agent_tool_sequenceordered불리언true
agent_constraints_satisfiedconstraints제약 이름 리스트비어 있음
agent_tool_permissionspermissions에이전트에서 허용 도구로의 매핑필수
agent_max_handoffsmax_handoffs정수, 0 이상필수

각 에이전트 유형에는 기본 criterion이 있어 생략할 수 있습니다. 자신의 유형 이름이거나, 설정으로 만든 이름입니다(agent_steps_le_8, agent_tool_lookup_called, agent_handoffs_le_2). 에이전트를 보세요.

예측 평가기

유형필드타입기본값
predictive_correct, predictive_recall, predictive_precisionpositive임의의 JSON 값true, 또는 predictive: 블록의 값
같음field출력 필드label, 또는 predictive.label_field
같음expected_field기대 필드label, 또는 predictive.expected_field
predictive_absolute_errortarget_range숫자 두 개필수
predictive_absolute_errorfield, expected_field위와 같음label
predictive_brier, predictive_log_loss, predictive_rankingpositive임의의 JSON 값true, 또는 블록의 값
같음field출력 필드score, 또는 predictive.score_field
같음expected_field기대 필드label, 또는 블록의 값
predictive_log_lossclip(0, 0.5) 범위의 숫자필수

positive, field 또는 expected_field를 쓰지 않은 예측 평가기는 그 값을 predictive: 블록에서 가져오며, 직접 쓴 값은 유지됩니다.

predictive

필드타입기본값
label_field문자열label
score_field문자열score
expected_field문자열label
positive임의의 JSON 값true
calibration_bins정수, 1 이상10
thresholds숫자 리스트비어 있음
averagemacro 또는 micro없음: 집계 없음

metrics

각 평가기 기준은 이미 지표입니다. metrics: 항목은 지표를 하나 더 추가하며, type으로 구별합니다.

type필드의미
quantileid, source, (0, 1) 범위의 quantilelatency_ms, input_tokens, output_tokens, cost_usd, agent_steps 또는 agent_tool_calls의 분위수.
rankingid, criterion, statistic: roc_auc 또는 average_precision순위 기준 점수의 순서에 대한 통계량.
human_score, human_preferenceid거부됨: 이 레이블을 읽는 승인된 방법이 아직 없습니다.
cost_per_acceptedid, criterion, cost_ceiling_usd, cost_ceiling_source연결 방식이 감사를 통해 승인될 때까지 거부됩니다.
# oloproof.yaml
version: 1
project: support-bot
dataset: datasets/support.jsonl
system:
  name: support-bot
  callable: app.bot:answer
evaluators:
  - type: exact_match
    criterion: correct_label
    field: label
metrics:
  - id: latency_p95
    type: quantile
    source: latency_ms
    quantile: 0.95

release.yaml

릴리스 정책입니다. 어떤 규칙이 결정하고, 어떤 결정이 차단하는지를 정합니다. 생략한 설정은 기본값을 유지하므로, 규칙만 지정한 정책도 여전히 FAIL, INSUFFICIENT_EVIDENCE, MANUAL_REVIEW에서 차단합니다.

# release.yaml
version: 1
rules:
  - id: label_accuracy
    metric: correct_label
    min: 0.8
필드타입기본값의미
version11파일 형식 버전.
confidence_level확률0.95규칙이 읽는 모든 구간의 신뢰 수준.
block_on결정 상태 리스트FAIL, INSUFFICIENT_EVIDENCE, MANUAL_REVIEW게이트를 차단하게 하고 종료 코드를 정하는 상태.
warn_on결정 상태 리스트비어 있음차단하지 않고 경고하는 상태. block_on과 겹치면 안 됩니다.
block_on_partial_run불리언true완료되지 않은 실행이 종료 코드 5로 차단하는지 여부.
require_validated_evaluators불리언true모델 심사 모델 위의 규칙이, 심사 모델이 사람 레이블에 대해 검증될 때까지 결정을 보류하는지 여부. 결정론적 평가기는 면제됩니다.
minimum_evaluator_agreement[0, 1] 범위의 숫자없음심사 모델이 검증되기 전에 하한 기준으로 도달해야 하는 사람 레이블과의 일치도.
maximum_evaluator_bias(0, 1] 범위의 숫자없음검증되기 전에 심사 모델의 통과율이 사람의 통과율에서 벗어날 수 있는 정도.
allow_approximate_methods불리언false엔진이 근사로 표시한 구간(클러스터 이진 구간)으로 규칙이 결정할 수 있는지 여부. 그렇지 않으면 MANUAL_REVIEW를 읽습니다.
min_clusters정수, 10 이상20클러스터가 이보다 적으면 클러스터 규칙은 INSUFFICIENT_EVIDENCE를 읽습니다.
difference_methodbounded_paired_difference@1 또는 conditional_exact_paired_difference@1없음: 첫 번째짝지은 이진 비율 차이를 경계 짓는 승인된 방법.
early_stopping불리언false케이스를 배치로 실행하고 모든 규칙이 결정되면 멈춥니다. 게이팅을 보세요.
early_stopping_seed정수, 0 이상없음케이스 순서의 시드.
early_stopping_batch_size정수, 1 이상25배치당 케이스 수.
rules리스트필수, 하나 이상규칙. 아래를 보세요.
families리스트비어 있음거짓 FAIL을 함께 통제하는 규칙.
review_rule매핑없음거부됨: 연결 방식이 아직 승인되지 않았습니다.

rules

하나의 리스트가 두 종류를 모두 담습니다. 실행 규칙은 min, max, max_failures 중 정확히 하나를 받습니다. 비교 규칙은 kind를 지정하고 두 실행 사이의 차이를 결정합니다. 비교 규칙을 보세요.

필드타입기본값적용 대상
id문자열필수모두
metric지표 id 또는 기준필수모두
kindinterval_threshold, observed_count, superiority, non_inferiority, equivalence실행 규칙은 추론됨모두
min숫자없음실행 규칙: 구간의 하한이 이 값 이상이면 PASS
max숫자없음실행 규칙: 구간의 상한이 이 값 이하이면 PASS
max_failures정수, 0 이상없음observed_count: 실행된 스위트에 대한 개수, 구간 없음
margin0보다 큰 숫자, 지표의 단위없음non_inferiority와 equivalence, superiority에서는 거부됨
directionmin 또는 maxminnon_inferiority 전용: 높을수록 좋은지 낮을수록 좋은지
max_missing_fraction[0, 1] 범위의 숫자없음구간 규칙과 비교 규칙
requires_manual_review불리언false모두: 규칙이 항상 MANUAL_REVIEW를 읽음
scopeglobal 또는 슬라이스global구간 규칙과 비교 규칙
min_support정수, 1 이상없음슬라이스에 대한 비교 규칙

families

필드타입기본값
id문자열필수
correctionholmholm
rules규칙 id 리스트필수, 하나 이상
# release.yaml
version: 1
warn_on: [INSUFFICIENT_EVIDENCE]
block_on: [FAIL, MANUAL_REVIEW]
rules:
  - id: label_accuracy
    metric: correct_label
    min: 0.8
    max_missing_fraction: 0.05
  - id: no_regression
    metric: correct_label
    kind: non_inferiority
    margin: 0.02

아티팩트 종류

아티팩트는 시스템이 출력 옆에 쓰는 타입이 있는 레코드로, 예를 들어 무엇을 검색했는지입니다. 종류는 선택적 버전이 붙은 소문자 이름으로, ^[a-z][a-z0-9_]*(/v[1-9][0-9]*)?$에 맞아야 합니다. 아티팩트가 필요한 평가기는 그 이름을 지정하며, 시스템이 필요한 종류를 선언하지 않은 실행은 모든 케이스를 누락으로 세는 대신 시작하기 전에 거부됩니다.

종류쓰는 곳필요로 하는 것
retrieval/v1current_case().retrieval(...), @rag_system 또는 http.artifactshit_rate, recall, mrr, ndcg
context/v1current_case().context(...) 또는 @rag_systemcitation_validity, groundedness_judge, citation_support_judge
citations/v1current_case().citations(...) 또는 @rag_systemcitation_validity, citation_support_judge
agent_trajectory/v1current_case().agent_trajectory(...)모든 agent_* 평가기, 그리고 agent_steps와 agent_tool_calls 소스
conversation/v1current_case().artifact(CONVERSATION, ...)ConversationCompleted, ConversationJudge
stage_timings/v1@rag_system없음, 지연 시간 옆에 표시됨

호출 가능 시스템은 기록하는 종류를 records:(또는 @system(records=...))에 선언하고, HTTP 시스템은 http.artifacts에 선언하며, 단계형 RAG 시스템은 스스로 기록합니다.

버전, 캐시 키, 무효화

Oloproof는 입력이 바뀌지 않은 작업을 재사용하며, 무엇이 "바뀌지 않음"인지는 내용 다이제스트로 판단합니다. 각 다이제스트는 엔진이 계산하고 실행과 함께 기록합니다.

레코드다음이 동일할 때 재사용됨
시스템 버전name, version, config, 그리고 코드 다이제스트: 호출 가능 객체의 모듈 소스(또는 code_paths에 맞는 모든 파일), HTTP 시스템의 url, method, output_path, artifacts
실행시스템 버전, 케이스의 input, 반복 인덱스. 성공한 실행만 재사용됩니다.
판정평가기 버전(유형과 모든 설정)과, 평가기 표에 나열된 대로 읽는 각 필드의 다이제스트
분석분석 계획, 지표, 신뢰 수준, 스위트 다이제스트, 그리고 센 모든 입력
게이트모든 분석, 정책 다이제스트, 실행이 완료되었는지 여부, 그리고 결정이 인용하는 각 평가기의 실효 상태

Oloproof가 볼 수 없는 것은 여러분이 선언해야 합니다.

  • HTTP 시스템의 동작은 서버에 있습니다. URL 뒤에 있는 것이 바뀔 때마다 system.version을 바꾸세요. 그렇지 않으면 예전에 캐시된 출력이 새 시스템을 대신하게 됩니다.
  • 호출 가능 객체의 보조 모듈은 code_paths가 그것에 맞을 때만 해시됩니다. 없으면 보조 모듈을 수정해도 버전이 바뀌지 않습니다.
  • 메서드나 호출 가능 객체는 버전을 선언해야 하며, 객체의 상태가 바뀌면 버전도 바뀌어야 합니다.
  • RAG 인덱스는 index_version으로 식별됩니다. 인덱스를 다시 만들면 바꾸세요.
  • 모델 심사 모델의 식별자는 제공자의 가중치가 아니라 설정입니다. 제공자가 같은 이름 뒤의 모델을 갱신해도 캐시는 이를 감지하지 못합니다.
  • 사용자 정의 @evaluator는 그것을 정의한 모듈 파일을 해시하며, cacheable=True를 선언할 때만 판정이 실행 사이에 재사용됩니다. 내장 루브릭 심사 모델은 캐시 가능하며, 결정론적 평가기는 다시 계산되는데 그 비용은 작습니다.

캐시된 작업은 프로젝트의 로컬 저장소, 즉 oloproof.yaml 옆의 .oloproof/store.sqlite(또는 OLOPROOF_HOME 아래)에 있습니다. 저장소를 지우면 모든 캐시와 모든 실행이 사라집니다. 호스팅 워크스페이스에서 엔진은 캐시된 실행, 판정, 분석을 재사용하지 않습니다. 푸시가 그것을 쓸 수 있기 때문이며, 엔진은 다시 계산합니다.