ガイド
設定リファレンス
oloproof.yaml と release.yaml のすべてのフィールドを、その型、デフォルト、受け付ける値、例とともに示します。内容はファイルを読み込むモデルから取っています。フィールドを調べるときに使ってください。ワークフローを学ぶにはクイックスタートとゲーティングのページを読んでください。
どちらのファイルも、何かが実行される前に検証されます。未知のフィールド、綴りの誤ったフィールド、型の誤った値は設定エラーであり、コマンドはケースを 1 つも実行せずに 2 で終了します。どちらのファイルにも JSON Schema があり、JSON Schema を読むエディターは補完に使えます。インストールされたパッケージは、結果のスキーマとともに、現在のディレクトリの schemas/v1/ にそれらを書き出します。python -m oloproof_core.models.schema_export(2 つのファイルは 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トップレベルのフィールド
| フィールド | 型 | デフォルト | 内容 |
|---|---|---|---|
| version | 1 | 1 | ファイル形式のバージョン。1 だけが存在します。 |
| project | 文字列 | 必須 | プロジェクトの名前。レポートに表示され、プッシュ時に使われます。 |
| dataset | パス | 必須 | スイートのファイル(JSONL)。プロジェクトからの相対パス。その行についてはスイートで説明しています。 |
| system | マッピング | 必須 | テスト対象のシステム。下記を参照してください。 |
| concurrency | マッピング | system: 8、judge: 4 | 同時に実行するシステム呼び出しとジャッジ呼び出しの数。 |
| evaluators | リスト | 必須、少なくとも 1 つ | 各ケースで何を測定するか。各エントリは type を持ちます。 |
| metrics | リスト | 空 | 各評価器の基準がすでにそうであるメトリクス以外の、追加のメトリクス。 |
| predictive | マッピング | なし | 分類器のラベル、スコア、正解がどこにあるか。予測モデルを参照してください。 |
| slices | 文字列のリスト | 空 | 探索的スライス。metadata.<key>、relevant_position、context_truncated。ゲートには届きません。スライスを参照してください。 |
| min_slice_support | 整数、1 以上 | 30 | 対象ケースがこの数を下回るスライスは、推定値を示しますが区間を示しません。 |
| replicates | 整数、1 以上 | 1 | すべてのケースをこの回数だけ測定します。単位はケースのままで、反復は区間を計算する前にケース内で集約されます。 |
| pricing | リスト | 空 | モデルごとの 100 万トークンあたりの支払額。これがなければコストはトークンで報告され、ドルでは報告されません。 |
| 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 のうちちょうど 1 つが必要です。
| フィールド | 型 | デフォルト | 内容 |
|---|---|---|---|
| name | 文字列 | 必須 | システムの名前。バージョンの識別の一部です。 |
| version | 文字列 | なし | このバージョンに付けるラベル。HTTP システムでは必須です。識別の一部なので、変えるとキャッシュ済みの実行は無効になります。 |
| callable | module:attribute | なし | 同期または非同期の Python 関数。ケースの input を受け取り、出力を返します。 |
| http | マッピング | なし | ケースごとに 1 回呼び出されるエンドポイント。下記を参照してください。 |
| rag | マッピング | なし | @rag_system で宣言された段階的 RAG クラス。下記を参照してください。 |
| config | マッピング | 空 | システムのバージョンとともに記録される自由形式の設定。変えるとバージョンが変わります。 |
| code_paths | glob パターンのリスト | 空 | 内容が呼び出し可能システムのバージョンに含まれるソースファイル。これがなければ、呼び出し可能オブジェクト自身のモジュールだけがハッシュされます。 |
| timeout_s | 0 より大きい数値 | 120 | 呼び出し可能システムの呼び出しごとの制限時間。HTTP システムは代わりに http.timeout_s を使います。 |
| records | アーティファクトの種類のリスト | 空 | 呼び出し可能システムが記録するアーティファクトの種類、たとえば retrieval/v1。HTTP システムや RAG システムでは拒否されます。 |
system.http
| フィールド | 型 | デフォルト | 内容 |
|---|---|---|---|
| url | 文字列 | 必須 | 各ケースの送信先。 |
| method | GET、POST、PUT | POST | HTTP メソッド。 |
| output_path | ドット区切りのパス | なし | JSON レスポンスのどのフィールドが出力か、たとえば result.answer。なければ本文全体です。 |
| artifacts | 種類からドット区切りのパスへのマッピング | 空 | アーティファクトとして記録されるレスポンスのフィールド、たとえば retrieval/v1: debug.retrieval。 |
| version | 文字列 | なし | system.version がないときにシステムのバージョンとして使われます。HTTP システムにはどちらか一方が必要です。 |
| timeout_s | 0 より大きい数値 | 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
| フィールド | 型 | デフォルト | 内容 |
|---|---|---|---|
| object | module: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 と、次の 2 つの共通フィールドを取ります。
| フィールド | 型 | デフォルト | 内容 |
|---|---|---|---|
| criterion | 文字列 | 型にデフォルトがない限り必須 | 測定するものの名前。各基準はメトリクスであり、ルールの metric: がそれを指定します。 |
| on_execution_error | missing または fail | missing | システム呼び出しが失敗したケースを、この基準について何として数えるか。missing は未観測として分母に残し、fail は失敗として数えます。 |
fail は合格・不合格の評価器にのみ適用され、スコアの評価器でこれを使うと設定エラーです。on_execution_error は YAML のフィールドです。SDK の評価器クラスはそのような引数を取らず、エラーになったケースは欠測として数えられます。
評価器の種類
「読むもの」は評価器の判定が依存するものを列挙しており、それはキャッシュされた判定のキーでもあります。「SDK」は oloproof.evaluators のクラスを示します。
| YAML の type | 読むもの | SDK | ネットワークまたはキーが必要か |
|---|---|---|---|
| exact_match | output、expected | ExactMatch | いいえ |
| contains | output、expected | Contains | いいえ |
| regex | output | Regex | いいえ |
| json_schema | output | JsonSchema | いいえ |
| rubric_judge | input、output、expected | RubricJudge | はい、モデルプロバイダー |
| model_classifier | output(または text が指定するフィールド)、任意で premise | YAML のみ | はい、TEI 互換のサーバー |
| probability_judge | ケースと出力 | YAML のみ | はい、対数確率を返す OpenAI 互換のプロバイダー |
| cascade | その 2 つの段階と同じ | YAML のみ | はい |
| hit_rate、recall、mrr、ndcg | artifacts.retrieval、expected | HitRate、Recall、MRR、NDCG | いいえ |
| citation_validity | artifacts.citations、artifacts.context | CitationValidity | いいえ |
| groundedness_judge | input、output、artifacts.context | Groundedness | はい |
| citation_support_judge | input、output、artifacts.context、artifacts.citations | CitationSupport | はい |
| agent_max_steps | artifacts.agent_trajectory | AgentMaxSteps | いいえ |
| agent_tool_called | artifacts.agent_trajectory | AgentToolCalled | いいえ |
| agent_no_tool_loop | artifacts.agent_trajectory | AgentNoToolLoop | いいえ |
| agent_tool_sequence | artifacts.agent_trajectory、expected | AgentToolSequence | いいえ |
| agent_no_undeclared_tool | artifacts.agent_trajectory、expected | AgentNoUndeclaredTool | いいえ |
| agent_constraints_satisfied | artifacts.agent_trajectory | AgentConstraintsSatisfied | いいえ |
| agent_route | artifacts.agent_trajectory | AgentRoute | いいえ |
| agent_tool_permissions | artifacts.agent_trajectory | AgentToolPermissions | いいえ |
| agent_max_handoffs | artifacts.agent_trajectory | AgentMaxHandoffs | いいえ |
| predictive_correct | output と expected のラベルフィールド | PredictiveCorrect | いいえ |
| predictive_recall | 上と同じ | PredictiveRecall | いいえ |
| predictive_precision | 上と同じ | PredictivePrecision | いいえ |
| predictive_absolute_error | 上と同じ、数値 | AbsoluteError | いいえ |
| predictive_brier | output のスコアフィールド、expected のラベル | Brier | いいえ |
| predictive_log_loss | 上と同じ | LogLoss | いいえ |
| predictive_ranking | 上と同じ | PredictiveRanking | いいえ |
| YAML の型なし | artifacts.conversation | ConversationCompleted(SDK のみ) | いいえ |
| YAML の型なし | expected、artifacts.conversation | ConversationJudge(SDK のみ) | はい |
| YAML の型なし | 宣言したもの | @evaluator と CustomEvaluator(SDK のみ) | あなた次第 |
ホスト型モデルを呼び出すジャッジは、ケースの内容をそのプロバイダーに送り、そのプロバイダーから請求されます。キーは api_key_env で指定した環境変数から読まれ、Oloproof がこれらのファイルに保存することはありません。
決定的評価器
| 型 | フィールド | 型 | デフォルト |
|---|---|---|---|
| exact_match | field | 出力内のドット区切りのパス | なし: 出力全体 |
| exact_match | expected_field | expected 内のドット区切りのパス | なし: field と同じ |
| exact_match | strip | 真偽値 | true |
| exact_match | casefold | 真偽値 | false |
| contains | field、expected_field | exact_match と同じ | なし |
| regex | pattern | 正規表現 | 必須 |
| regex | field | ドット区切りのパス | なし |
| regex | pass_if | match または no_match | match |
| json_schema | schema | インラインの JSON Schema、またはプロジェクトからの相対パスで示す JSON ファイル | 必須 |
| json_schema | field | ドット区切りのパス | なし |
モデルジャッジ
rubric_judge、groundedness_judge、citation_support_judge は次のフィールドを共有します。rubric_judge には rubric_file と rubric_text のちょうど一方が必要です。2 つの RAG ジャッジは多くとも一方を取り、なければ組み込みのルーブリックを使います。それらの criterion のデフォルトは groundedness と citation_support です。
| フィールド | 型 | デフォルト |
|---|---|---|
| provider | anthropic、openai、openai_compatible | 必須 |
| model | 文字列 | 必須 |
| rubric_file | パス | なし |
| rubric_text | 文字列 | なし |
| api_key_env | 環境変数名 | ANTHROPIC_API_KEY または OPENAI_API_KEY |
| base_url | URL | プロバイダーのもの |
| temperature | 数値 | 0 |
| max_tokens | 整数、1 以上 | 512 |
| timeout_s | 0 より大きい数値 | 60 |
probability_judge は型付きの質問をし、モデルの確率を読みます。
| フィールド | 型 | デフォルト |
|---|---|---|
| provider | openai または openai_compatible | 必須 |
| model | 文字列 | 必須 |
| question | 文字列 | 必須 |
| form | yes_no、choice、score | 必須 |
| min_probability | (0, 1] の数値 | 必須 |
| options | 回答から説明へのマッピング | choice の場合 |
| pass_options | 回答のリスト | choice の場合 |
| levels | レベルから説明へのマッピング、低いものから | score の場合 |
| pass_at_least | レベル | score の場合 |
| calibration | slope(0 より大きい)、intercept、from_version | なし |
| api_key_env、base_url | 上と同じ | なし |
| timeout_s | 0 より大きい数値 | 60 |
cascade は安価なジャッジを先に実行し、不確かなケースをエスカレーションします。
| フィールド | 型 | デフォルト |
|---|---|---|
| first | probability_judge のエントリ | 必須 |
| then | rubric_judge または probability_judge のエントリ | 必須 |
| escalate_between | 2 つの確率 | 必須 |
各段階はカスケード自身の criterion を判定します。別の基準を指定した段階は拒否されます。
model_classifier は、TEI 互換のサーバー上の学習済みモデルでテキストを採点します。
| フィールド | 型 | デフォルト |
|---|---|---|
| model | 文字列 | 必須 |
| base_url | URL | 必須 |
| label | 読み取る分類器のラベル | 必須 |
| min_score または max_score | [0, 1] の数値、ちょうど一方 | 必須 |
| text | 分類するフィールド | output |
| premise | ペア分類器のための 2 つ目のテキスト | なし |
| api_key_env | 環境変数名 | なし |
| timeout_s | 0 より大きい数値 | 30 |
RAG の評価器
| 型 | フィールド | 型 | デフォルト |
|---|---|---|---|
| hit_rate、recall、mrr、ndcg | k | 整数、1 以上 | hit_rate と recall は 5、mrr と ndcg は 10 |
| hit_rate、recall、mrr、ndcg | relevance_unit | doc または chunk | doc |
| hit_rate、recall、mrr、ndcg | criterion | 文字列 | <type>_at_<k>、たとえば hit_rate_at_5 |
| citation_validity | require_citations | 真偽値 | false |
| citation_validity | criterion | 文字列 | citations_valid |
エージェントの評価器
| 型 | フィールド | 型 | デフォルト |
|---|---|---|---|
| agent_max_steps | max_steps | 整数、1 以上 | 必須 |
| agent_tool_called | tool_name | 文字列 | 必須 |
| agent_tool_called | min_calls | 整数、1 以上 | 1 |
| agent_no_tool_loop | max_repeats | 整数、1 以上 | 2 |
| agent_tool_sequence | ordered | 真偽値 | true |
| agent_constraints_satisfied | constraints | 制約名のリスト | 空 |
| agent_tool_permissions | permissions | エージェントから許可されたツールへのマッピング | 必須 |
| agent_max_handoffs | max_handoffs | 整数、0 以上 | 必須 |
各エージェントの型にはデフォルトの criterion があるため、省略できます。それ自身の型名か、設定から組み立てた名前(agent_steps_le_8、agent_tool_lookup_called、agent_handoffs_le_2)です。エージェントを参照してください。
予測の評価器
| 型 | フィールド | 型 | デフォルト |
|---|---|---|---|
| predictive_correct、predictive_recall、predictive_precision | positive | 任意の JSON 値 | true、または predictive: ブロックの値 |
| 同上 | field | 出力フィールド | label、または predictive.label_field |
| 同上 | expected_field | 期待値フィールド | label、または predictive.expected_field |
| predictive_absolute_error | target_range | 2 つの数値 | 必須 |
| predictive_absolute_error | field、expected_field | 上と同じ | label |
| predictive_brier、predictive_log_loss、predictive_ranking | positive | 任意の JSON 値 | true、またはブロックの値 |
| 同上 | field | 出力フィールド | score、または predictive.score_field |
| 同上 | expected_field | 期待値フィールド | label、またはブロックの値 |
| predictive_log_loss | clip | (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 | 数値のリスト | 空 |
| average | macro または micro | なし: 集約なし |
metrics
各評価器の基準はすでにメトリクスです。metrics: のエントリは、type で区別されるメトリクスをもう 1 つ追加します。
| type | フィールド | 内容 |
|---|---|---|
| quantile | id、source、(0, 1) の quantile | latency_ms、input_tokens、output_tokens、cost_usd、agent_steps、agent_tool_calls の分位点。 |
| ranking | id、criterion、statistic: roc_auc または average_precision | ランキング基準のスコアの順序にもとづく統計量。 |
| human_score、human_preference | id | 拒否されます。これらのラベルを読む認められた手法はまだありません。 |
| cost_per_accepted | id、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.95release.yaml
リリースポリシーです。どのルールが判断し、どの判断がブロックするかを定めます。省略した設定はデフォルトを保つため、ルールだけを指定したポリシーでも FAIL、INSUFFICIENT_EVIDENCE、MANUAL_REVIEW でブロックします。
# release.yaml
version: 1
rules:
- id: label_accuracy
metric: correct_label
min: 0.8| フィールド | 型 | デフォルト | 内容 |
|---|---|---|---|
| version | 1 | 1 | ファイル形式のバージョン。 |
| 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_method | bounded_paired_difference@1 または conditional_exact_paired_difference@1 | なし: 前者 | 対応のある二値の率の差を、どの認められた手法で境界づけるか。 |
| early_stopping | 真偽値 | false | ケースをバッチで実行し、すべてのルールが判断された時点で止めます。ゲーティングを参照してください。 |
| early_stopping_seed | 整数、0 以上 | なし | ケースの順序のシード。 |
| early_stopping_batch_size | 整数、1 以上 | 25 | バッチあたりのケース数。 |
| rules | リスト | 必須、少なくとも 1 つ | ルール。下記を参照してください。 |
| families | リスト | 空 | 誤った FAIL をまとめて制御するルール群。 |
| review_rule | マッピング | なし | 拒否されます。その配線はまだ認められていません。 |
rules
1 つのリストが両方の種類を保持します。実行ルールは min、max、max_failures のちょうど 1 つを取ります。比較ルールはその kind を指定し、2 つの実行の差を判断します。比較ルールを参照してください。
| フィールド | 型 | デフォルト | 適用対象 |
|---|---|---|---|
| id | 文字列 | 必須 | すべて |
| metric | メトリクス id または基準 | 必須 | すべて |
| kind | interval_threshold、observed_count、superiority、non_inferiority、equivalence | 実行ルールでは推論されます | すべて |
| min | 数値 | なし | 実行ルール: 区間の下限がこれ以上のとき PASS |
| max | 数値 | なし | 実行ルール: 区間の上限がこれ以下のとき PASS |
| max_failures | 整数、0 以上 | なし | observed_count: 実行されたスイート全体での件数、区間なし |
| margin | 0 より大きい数値、メトリクスの単位 | なし | non_inferiority と equivalence。superiority では拒否されます |
| direction | min または max | min | non_inferiority のみ: 高いほうが良いか低いほうが良いか |
| max_missing_fraction | [0, 1] の数値 | なし | 区間ルールと比較ルール |
| requires_manual_review | 真偽値 | false | すべて: ルールは常に MANUAL_REVIEW になります |
| scope | global またはスライス | global | 区間ルールと比較ルール |
| min_support | 整数、1 以上 | なし | スライス上の比較ルール |
families
| フィールド | 型 | デフォルト |
|---|---|---|
| id | 文字列 | 必須 |
| correction | holm | holm |
| rules | ルール id のリスト | 必須、少なくとも 1 つ |
# 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/v1 | current_case().retrieval(...)、@rag_system、または http.artifacts | hit_rate、recall、mrr、ndcg |
| context/v1 | current_case().context(...) または @rag_system | citation_validity、groundedness_judge、citation_support_judge |
| citations/v1 | current_case().citations(...) または @rag_system | citation_validity、citation_support_judge |
| agent_trajectory/v1 | current_case().agent_trajectory(...) | すべての agent_* 評価器、および agent_steps と agent_tool_calls のソース |
| conversation/v1 | current_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 の下)にあります。ストアを削除すると、すべてのキャッシュとすべての実行が破棄されます。ホスト型ワークスペースでは、プッシュがそれらに書き込めるため、エンジンはキャッシュ済みの実行、判定、分析を再利用せず、再計算します。