Chuyển đến nội dung

Hướng dẫn

Tham chiếu cấu hình

Mọi trường của oloproof.yaml và release.yaml, kèm kiểu, giá trị mặc định, các giá trị nó chấp nhận và một ví dụ, được lấy từ các mô hình đọc các tệp này. Hãy dùng trang này để tra cứu một trường; đọc các trang bắt đầu nhanh và cổng để học quy trình.

Cả hai tệp đều được kiểm tra trước khi bất cứ thứ gì chạy. Một trường không xác định, một trường viết sai chính tả hoặc một giá trị sai kiểu là một lỗi cấu hình và lệnh thoát với 2 mà không thực thi trường hợp nào. Cả hai tệp đều có JSON Schema, mà một trình soạn thảo đọc được JSON Schema có thể dùng để gợi ý hoàn thành. Gói đã cài đặt ghi chúng, cùng với các schema kết quả, vào schemas/v1/ dưới thư mục hiện tại: python -m oloproof_core.models.schema_export (hai tệp là project_config.schema.json và release_policy.schema.json).

Trong các bảng bên dưới, "bắt buộc" nghĩa là tệp bị từ chối nếu thiếu trường đó; mọi trường khác cho thấy giá trị được dùng khi nó bị bỏ qua.

Tổng quan về oloproof.yaml

Một dự án nhỏ, đầy đủ. Nó chạy một hàm Python cục bộ, không cần mạng và không cần khóa, và là hình dạng mà oloproof init tạo khung.

# 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

Các trường cấp cao nhất

TrườngKiểuMặc địnhNó là gì
version11Phiên bản định dạng tệp. Chỉ có 1.
projectchuỗibắt buộcTên dự án, hiển thị trong báo cáo và được dùng khi push.
datasetđường dẫnbắt buộcTệp bộ kiểm thử, JSONL, tương đối với dự án. Các dòng của nó được mô tả trong Bộ kiểm thử.
systemánh xạbắt buộcHệ thống được kiểm thử. Xem bên dưới.
concurrencyánh xạsystem: 8, judge: 4Bao nhiêu lời gọi hệ thống và lời gọi giám khảo chạy cùng lúc.
evaluatorsdanh sáchbắt buộc, ít nhất mộtNhững gì được đo trên mỗi trường hợp. Mỗi mục có một type.
metricsdanh sáchrỗngCác chỉ số bổ sung ngoài chỉ số mà mỗi tiêu chí của bộ đánh giá vốn đã là.
predictiveánh xạkhông cóNhãn, điểm số và sự thật của một bộ phân loại nằm ở đâu. Xem Mô hình dự đoán.
slicesdanh sách chuỗirỗngCác lát cắt khám phá: metadata.<key>, relevant_position hoặc context_truncated. Chúng không bao giờ tới được cổng. Xem Lát cắt.
min_slice_supportsố nguyên, ít nhất 130Dưới số trường hợp đủ điều kiện này, một lát cắt hiển thị ước lượng nhưng không có khoảng.
replicatessố nguyên, ít nhất 11Đo mỗi trường hợp chừng này lần. Trường hợp vẫn là đơn vị: các lần lặp được tổng hợp bên trong nó trước khi bất kỳ khoảng nào được tính.
pricingdanh sáchrỗngSố tiền bạn trả cho mỗi triệu token, theo mô hình. Không có nó, chi phí được báo bằng token và không bao giờ bằng đô la.
egressdanh sách chuỗirỗngNội dung thô nào mà oloproof push được phép gửi lên một không gian làm việc được lưu trữ. Xem Kết quả và thực thi.

concurrency

TrườngKiểuMặc định
systemsố nguyên, ít nhất 18
judgesố nguyên, ít nhất 14

Các mục pricing

Oloproof không đi kèm bảng giá nào. Mỗi mục nêu một mô hình đúng như model: của một bộ đánh giá nêu nó.

TrườngKiểuMặc định
modelchuỗibắt buộc
input_per_mtoksố, từ 0 trở lênbắt buộc
output_per_mtoksố, từ 0 trở lênbắt buộc
# 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

Một hệ thống cần đúng một trong callable, http hoặc rag.

TrườngKiểuMặc địnhNó là gì
namechuỗibắt buộcTên của hệ thống. Một phần của danh tính phiên bản.
versionchuỗikhông cóNhãn của bạn cho phiên bản này. Bắt buộc với một hệ thống HTTP. Một phần của danh tính, nên việc đổi nó làm mất hiệu lực các lần thực thi đã lưu đệm.
callablemodule:attributekhông cóMột hàm Python, đồng bộ hoặc bất đồng bộ. Nó nhận input của trường hợp và trả về đầu ra.
httpánh xạkhông cóMột endpoint được gọi một lần cho mỗi trường hợp. Xem bên dưới.
ragánh xạkhông cóMột lớp RAG phân tầng được khai báo bằng @rag_system. Xem bên dưới.
configánh xạrỗngCác thiết lập dạng tự do được ghi cùng phiên bản hệ thống. Đổi chúng sẽ đổi phiên bản.
code_pathsdanh sách mẫu globrỗngCác tệp nguồn mà nội dung của chúng đi vào phiên bản của một hệ thống callable. Không có nó, chỉ module của chính callable được băm.
timeout_ssố lớn hơn 0120Giới hạn thời gian cho mỗi lời gọi với một hệ thống callable. Một hệ thống HTTP dùng http.timeout_s thay vào đó.
recordsdanh sách loại artifactrỗngCác loại artifact mà một hệ thống callable ghi lại, chẳng hạn retrieval/v1. Bị từ chối trên một hệ thống HTTP hoặc RAG.

system.http

TrườngKiểuMặc địnhNó là gì
urlchuỗibắt buộcNơi mỗi trường hợp được gửi tới.
methodGET, POST hoặc PUTPOSTPhương thức HTTP.
output_pathđường dẫn có dấu chấmkhông cóTrường nào của phản hồi JSON là đầu ra, chẳng hạn result.answer. Không có nghĩa là toàn bộ thân phản hồi.
artifactsánh xạ từ loại tới đường dẫn có dấu chấmrỗngCác trường phản hồi được ghi lại thành artifact, chẳng hạn retrieval/v1: debug.retrieval.
versionchuỗikhông cóĐược dùng làm phiên bản của hệ thống khi không có system.version. Một hệ thống HTTP cần một trong hai.
timeout_ssố lớn hơn 030Giới hạn thời gian cho mỗi yêu cầu.
# 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

Hợp đồng yêu cầu và phản hồi, và điều gì xảy ra khi hết thời gian và khi có lỗi HTTP, nằm trong Kết quả và thực thi.

system.rag

TrườngKiểuMặc địnhNó là gì
objectmodule:attributebắt buộcLớp được khai báo bằng @rag_system, hoặc một thể hiện của nó.
depthsố nguyên, ít nhất 1của lớpViệc truy xuất trả về bao nhiêu đoạn văn.
top_ksố nguyên, ít nhất 1của lớpBao nhiêu trong số đó tới được bước sinh.
token_budgetsố nguyên, ít nhất 1của lớpMột giới hạn token cho ngữ cảnh. Cần count_tokens(passage) của lớp.
index_versionchuỗicủa lớpMột phần của danh tính truy xuất. Hãy đổi nó mỗi khi chỉ mục được xây dựng lại.

Các thiết lập đưa ở đây ghi đè các thiết lập mà lớp khai báo. Một hệ thống phân tầng tự ghi lại các artifact retrieval/v1, context/v1 và citations/v1 của nó, nên records bị từ chối khi đi cùng nó. Xem RAG.

evaluators

Mọi mục nhận một type và hai trường chung sau:

TrườngKiểuMặc địnhNó là gì
criterionchuỗibắt buộc trừ khi loại đó có mặc địnhTên của thứ được đo. Mỗi tiêu chí là một chỉ số, và metric: của một quy tắc nêu nó.
on_execution_errormissing hoặc failmissingMột trường hợp mà lời gọi hệ thống thất bại được tính là gì cho tiêu chí này. missing giữ nó trong mẫu số là chưa quan sát; fail tính nó là một thất bại.

fail chỉ áp dụng cho các bộ đánh giá đạt/không đạt; một bộ đánh giá điểm số có nó là một lỗi cấu hình. on_execution_error là một trường YAML; các lớp bộ đánh giá của SDK không nhận đối số như vậy, và một trường hợp bị lỗi được tính là bị thiếu.

Các loại bộ đánh giá

"Đọc" liệt kê những gì phán quyết của bộ đánh giá phụ thuộc vào, cũng là thứ mà phán quyết đã lưu đệm của nó được lập khóa theo. "SDK" nêu lớp trong oloproof.evaluators.

type YAMLĐọcSDKCần mạng hoặc khóa
exact_matchoutput, expectedExactMatchkhông
containsoutput, expectedContainskhông
regexoutputRegexkhông
json_schemaoutputJsonSchemakhông
rubric_judgeinput, output, expectedRubricJudgecó, một nhà cung cấp mô hình
model_classifieroutput (hoặc trường được nêu bởi text), tùy chọn premisechỉ YAMLcó, một máy chủ tương thích TEI
probability_judgetrường hợp và đầu rachỉ YAMLcó, một nhà cung cấp tương thích OpenAI trả về log xác suất
cascadenhư hai tầng của nóchỉ YAMLcó
hit_rate, recall, mrr, ndcgartifacts.retrieval, expectedHitRate, Recall, MRR, NDCGkhông
citation_validityartifacts.citations, artifacts.contextCitationValiditykhông
groundedness_judgeinput, output, artifacts.contextGroundednesscó
citation_support_judgeinput, output, artifacts.context, artifacts.citationsCitationSupportcó
agent_max_stepsartifacts.agent_trajectoryAgentMaxStepskhông
agent_tool_calledartifacts.agent_trajectoryAgentToolCalledkhông
agent_no_tool_loopartifacts.agent_trajectoryAgentNoToolLoopkhông
agent_tool_sequenceartifacts.agent_trajectory, expectedAgentToolSequencekhông
agent_no_undeclared_toolartifacts.agent_trajectory, expectedAgentNoUndeclaredToolkhông
agent_constraints_satisfiedartifacts.agent_trajectoryAgentConstraintsSatisfiedkhông
agent_routeartifacts.agent_trajectoryAgentRoutekhông
agent_tool_permissionsartifacts.agent_trajectoryAgentToolPermissionskhông
agent_max_handoffsartifacts.agent_trajectoryAgentMaxHandoffskhông
predictive_correcttrường nhãn của output và expectedPredictiveCorrectkhông
predictive_recallnhư trênPredictiveRecallkhông
predictive_precisionnhư trênPredictivePrecisionkhông
predictive_absolute_errornhư trên, dạng sốAbsoluteErrorkhông
predictive_briertrường điểm số của output, nhãn của expectedBrierkhông
predictive_log_lossnhư trênLogLosskhông
predictive_rankingnhư trênPredictiveRankingkhông
không có loại YAMLartifacts.conversationConversationCompleted (chỉ SDK)không
không có loại YAMLexpected, artifacts.conversationConversationJudge (chỉ SDK)có
không có loại YAMLnhững gì bạn khai báo@evaluator và CustomEvaluator (chỉ SDK)tùy bạn

Một giám khảo gọi một mô hình được lưu trữ sẽ gửi nội dung trường hợp tới nhà cung cấp đó và bị nhà cung cấp đó tính phí. Khóa được đọc từ biến môi trường được nêu trong api_key_env; Oloproof không bao giờ lưu chúng trong các tệp này.

Bộ đánh giá tất định

LoạiTrườngKiểuMặc định
exact_matchfieldđường dẫn có dấu chấm trong đầu rakhông có: toàn bộ đầu ra
exact_matchexpected_fieldđường dẫn có dấu chấm trong expectedkhông có: giống field
exact_matchstripbooleantrue
exact_matchcasefoldbooleanfalse
containsfield, expected_fieldnhư exact_matchkhông có
regexpatternbiểu thức chính quybắt buộc
regexfieldđường dẫn có dấu chấmkhông có
regexpass_ifmatch hoặc no_matchmatch
json_schemaschemamột JSON Schema viết trực tiếp, hoặc một đường dẫn tới tệp JSON tương đối với dự ánbắt buộc
json_schemafieldđường dẫn có dấu chấmkhông có

Giám khảo mô hình

rubric_judge, groundedness_judge và citation_support_judge dùng chung các trường này. rubric_judge yêu cầu đúng một trong rubric_file hoặc rubric_text; hai giám khảo RAG nhận tối đa một và nếu không thì dùng một rubric có sẵn. criterion của chúng mặc định là groundedness và citation_support.

TrườngKiểuMặc định
provideranthropic, openai hoặc openai_compatiblebắt buộc
modelchuỗibắt buộc
rubric_fileđường dẫnkhông có
rubric_textchuỗikhông có
api_key_envtên biến môi trườngANTHROPIC_API_KEY hoặc OPENAI_API_KEY
base_urlURLcủa nhà cung cấp
temperaturesố0
max_tokenssố nguyên, ít nhất 1512
timeout_ssố lớn hơn 060

probability_judge hỏi một câu hỏi có kiểu và đọc các xác suất của mô hình:

TrườngKiểuMặc định
provideropenai hoặc openai_compatiblebắt buộc
modelchuỗibắt buộc
questionchuỗibắt buộc
formyes_no, choice hoặc scorebắt buộc
min_probabilitysố trong (0, 1]bắt buộc
optionsánh xạ từ câu trả lời tới mô tảcho choice
pass_optionsdanh sách câu trả lờicho choice
levelsánh xạ từ mức tới mô tả, thấp nhất trướccho score
pass_at_leastmột mứccho score
calibrationslope (lớn hơn 0), intercept, from_versionkhông có
api_key_env, base_urlnhư trênkhông có
timeout_ssố lớn hơn 060

cascade chạy một giám khảo rẻ trước và chuyển lên các trường hợp chưa chắc chắn:

TrườngKiểuMặc định
firstmột mục probability_judgebắt buộc
thenmột mục rubric_judge hoặc probability_judgebắt buộc
escalate_betweenhai xác suấtbắt buộc

Các tầng chấm theo chính criterion của cascade; một tầng nêu một tiêu chí khác sẽ bị từ chối.

model_classifier chấm điểm văn bản bằng một mô hình đã huấn luyện trên một máy chủ tương thích TEI:

TrườngKiểuMặc định
modelchuỗibắt buộc
base_urlURLbắt buộc
labelnhãn của bộ phân loại cần đọcbắt buộc
min_score hoặc max_scoresố trong [0, 1], đúng mộtbắt buộc
texttrường nào được phân loạioutput
premisemột văn bản thứ hai, cho các bộ phân loại cặpkhông có
api_key_envtên biến môi trườngkhông có
timeout_ssố lớn hơn 030

Bộ đánh giá RAG

LoạiTrườngKiểuMặc định
hit_rate, recall, mrr, ndcgksố nguyên, ít nhất 15 cho hit_rate và recall, 10 cho mrr và ndcg
hit_rate, recall, mrr, ndcgrelevance_unitdoc hoặc chunkdoc
hit_rate, recall, mrr, ndcgcriterionchuỗi<type>_at_<k>, chẳng hạn hit_rate_at_5
citation_validityrequire_citationsbooleanfalse
citation_validitycriterionchuỗicitations_valid

Bộ đánh giá agent

LoạiTrườngKiểuMặc định
agent_max_stepsmax_stepssố nguyên, ít nhất 1bắt buộc
agent_tool_calledtool_namechuỗibắt buộc
agent_tool_calledmin_callssố nguyên, ít nhất 11
agent_no_tool_loopmax_repeatssố nguyên, ít nhất 12
agent_tool_sequenceorderedbooleantrue
agent_constraints_satisfiedconstraintsdanh sách tên ràng buộcrỗng
agent_tool_permissionspermissionsánh xạ từ agent tới các công cụ được phépbắt buộc
agent_max_handoffsmax_handoffssố nguyên, từ 0 trở lênbắt buộc

Mỗi loại agent có một criterion mặc định, nên có thể bỏ qua nó: chính tên loại của nó, hoặc một tên được dựng từ thiết lập của nó (agent_steps_le_8, agent_tool_lookup_called, agent_handoffs_le_2). Xem Agent.

Bộ đánh giá dự đoán

LoạiTrườngKiểuMặc định
predictive_correct, predictive_recall, predictive_precisionpositivebất kỳ giá trị JSON nàotrue, hoặc của khối predictive:
như trênfieldtrường đầu ralabel, hoặc predictive.label_field
như trênexpected_fieldtrường kỳ vọnglabel, hoặc predictive.expected_field
predictive_absolute_errortarget_rangehai sốbắt buộc
predictive_absolute_errorfield, expected_fieldnhư trênlabel
predictive_brier, predictive_log_loss, predictive_rankingpositivebất kỳ giá trị JSON nàotrue, hoặc của khối
như trênfieldtrường đầu rascore, hoặc predictive.score_field
như trênexpected_fieldtrường kỳ vọnglabel, hoặc của khối
predictive_log_lossclipsố trong (0, 0.5)bắt buộc

Một bộ đánh giá dự đoán không viết positive, field hoặc expected_field sẽ lấy chúng từ khối predictive:; một giá trị mà nó viết thì được giữ nguyên.

predictive

TrườngKiểuMặc định
label_fieldchuỗilabel
score_fieldchuỗiscore
expected_fieldchuỗilabel
positivebất kỳ giá trị JSON nàotrue
calibration_binssố nguyên, ít nhất 110
thresholdsdanh sách sốrỗng
averagemacro hoặc microkhông có: không tổng hợp

metrics

Mỗi tiêu chí của bộ đánh giá vốn đã là một chỉ số. Một mục metrics: thêm một chỉ số nữa, được phân biệt bằng type.

typeTrườngNó là gì
quantileid, source, quantile trong (0, 1)Một phân vị của latency_ms, input_tokens, output_tokens, cost_usd, agent_steps hoặc agent_tool_calls.
rankingid, criterion, statistic: roc_auc hoặc average_precisionMột thống kê trên thứ tự điểm số của một tiêu chí xếp hạng.
human_score, human_preferenceidBị từ chối: chưa có phương pháp được chấp nhận nào đọc các nhãn này.
cost_per_acceptedid, criterion, cost_ceiling_usd, cost_ceiling_sourceBị từ chối cho tới khi phần kết nối của nó được chấp nhận qua kiểm định.
# 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

Chính sách phát hành: quy tắc nào quyết định, và quyết định nào chặn. Các thiết lập bị bỏ qua giữ giá trị mặc định, nên một chính sách chỉ nêu các quy tắc của nó vẫn chặn trên FAIL, INSUFFICIENT_EVIDENCE và MANUAL_REVIEW.

# release.yaml
version: 1
rules:
  - id: label_accuracy
    metric: correct_label
    min: 0.8
TrườngKiểuMặc địnhNó là gì
version11Phiên bản định dạng tệp.
confidence_levelxác suất0.95Mức của mọi khoảng mà một quy tắc đọc.
block_ondanh sách trạng thái quyết địnhFAIL, INSUFFICIENT_EVIDENCE, MANUAL_REVIEWCác trạng thái khiến cổng chặn, và đặt mã thoát.
warn_ondanh sách trạng thái quyết địnhrỗngCác trạng thái cảnh báo mà không chặn. Không được trùng với block_on.
block_on_partial_runbooleantrueMột lần chạy chưa hoàn tất có chặn hay không, với mã thoát 5.
require_validated_evaluatorsbooleantrueMột quy tắc trên một giám khảo mô hình có giữ lại quyết định cho tới khi giám khảo được xác thực so với nhãn của con người hay không. Các bộ đánh giá tất định được miễn.
minimum_evaluator_agreementsố trong [0, 1]không cóMức đồng thuận với nhãn của con người mà một giám khảo phải đạt, theo cận dưới của nó, trước khi được xác thực.
maximum_evaluator_biassố trong (0, 1]không cóTỷ lệ đạt của một giám khảo được phép cách tỷ lệ của con người bao xa trước khi nó được xác thực.
allow_approximate_methodsbooleanfalseMột quy tắc có được quyết định dựa trên một khoảng mà engine đánh dấu là xấp xỉ (khoảng nhị phân theo cụm) hay không. Nếu không, nó ghi MANUAL_REVIEW.
min_clusterssố nguyên, ít nhất 1020Ít cụm hơn số này thì một quy tắc theo cụm ghi INSUFFICIENT_EVIDENCE.
difference_methodbounded_paired_difference@1 hoặc conditional_exact_paired_difference@1không có: phương pháp thứ nhấtPhương pháp được chấp nhận nào chặn biên một khác biệt tỷ lệ nhị phân ghép cặp.
early_stoppingbooleanfalseChạy các trường hợp theo lô và dừng khi mọi quy tắc đã được quyết định. Xem Cổng.
early_stopping_seedsố nguyên, từ 0 trở lênkhông cóSeed của thứ tự trường hợp.
early_stopping_batch_sizesố nguyên, ít nhất 125Số trường hợp mỗi lô.
rulesdanh sáchbắt buộc, ít nhất mộtCác quy tắc. Xem bên dưới.
familiesdanh sáchrỗngCác quy tắc mà các FAIL sai của chúng được kiểm soát cùng nhau.
review_ruleánh xạkhông cóBị từ chối: phần kết nối chưa được chấp nhận.

rules

Một danh sách chứa cả hai loại. Một quy tắc lần chạy nhận đúng một trong min, max hoặc max_failures. Một quy tắc so sánh nêu kind của nó và quyết định một khác biệt giữa hai lần chạy; xem Quy tắc so sánh.

TrườngKiểuMặc địnhÁp dụng cho
idchuỗibắt buộctất cả
metricmột id chỉ số hoặc tiêu chíbắt buộctất cả
kindinterval_threshold, observed_count, superiority, non_inferiority, equivalenceđược suy ra cho các quy tắc lần chạytất cả
minsốkhông cóquy tắc lần chạy: PASS khi cận dưới của khoảng ít nhất bằng giá trị này
maxsốkhông cóquy tắc lần chạy: PASS khi cận trên của khoảng nhiều nhất bằng giá trị này
max_failuressố nguyên, từ 0 trở lênkhông cóobserved_count: một số đếm trên bộ kiểm thử đã thực thi, không có khoảng
marginsố lớn hơn 0, theo đơn vị của chỉ sốkhông cónon_inferiority và equivalence; bị từ chối trên superiority
directionmin hoặc maxminchỉ non_inferiority: cao hơn hay thấp hơn là tốt hơn
max_missing_fractionsố trong [0, 1]không cóquy tắc khoảng và quy tắc so sánh
requires_manual_reviewbooleanfalsetất cả: quy tắc luôn ghi MANUAL_REVIEW
scopeglobal hoặc một lát cắtglobalquy tắc khoảng và quy tắc so sánh
min_supportsố nguyên, ít nhất 1không cóquy tắc so sánh trên một lát cắt

families

TrườngKiểuMặc định
idchuỗibắt buộc
correctionholmholm
rulesdanh sách id quy tắcbắt buộc, ít nhất một
# 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

Các loại artifact

Một artifact là một bản ghi có kiểu mà một hệ thống viết bên cạnh đầu ra của nó, chẳng hạn những gì nó đã truy xuất. Một loại là một tên chữ thường với một phiên bản tùy chọn, khớp ^[a-z][a-z0-9_]*(/v[1-9][0-9]*)?$. Các bộ đánh giá cần một artifact sẽ nêu nó, và một lần chạy mà hệ thống không khai báo một loại bắt buộc sẽ bị từ chối trước khi bắt đầu, thay vì tính mọi trường hợp là bị thiếu.

LoạiĐược viết bởiĐược yêu cầu bởi
retrieval/v1current_case().retrieval(...), một @rag_system, hoặc http.artifactshit_rate, recall, mrr, ndcg
context/v1current_case().context(...) hoặc một @rag_systemcitation_validity, groundedness_judge, citation_support_judge
citations/v1current_case().citations(...) hoặc một @rag_systemcitation_validity, citation_support_judge
agent_trajectory/v1current_case().agent_trajectory(...)mọi bộ đánh giá agent_*, và các nguồn agent_steps và agent_tool_calls
conversation/v1current_case().artifact(CONVERSATION, ...)ConversationCompleted, ConversationJudge
stage_timings/v1một @rag_systemkhông có; hiển thị bên cạnh độ trễ

Một hệ thống callable khai báo các loại mà nó ghi lại trong records: (hoặc @system(records=...)); một hệ thống HTTP trong http.artifacts; một hệ thống RAG phân tầng tự ghi lại các loại của nó.

Phiên bản, khóa bộ nhớ đệm và việc mất hiệu lực

Oloproof tái sử dụng công việc có đầu vào không thay đổi, và quyết định "không thay đổi" nghĩa là gì từ các digest nội dung. Mỗi digest được engine tính và ghi lại cùng lần chạy.

Bản ghiĐược tái sử dụng khi những thứ này giống hệt nhau
Phiên bản hệ thốngname, version, config, và một digest mã: mã nguồn module của một callable (hoặc mọi tệp khớp code_paths), url, method, output_path và artifacts của một hệ thống HTTP
Lần thực thiphiên bản hệ thống, input của trường hợp và chỉ số lần lặp. Chỉ các lần thực thi thành công mới được tái sử dụng.
Phán quyếtphiên bản bộ đánh giá (loại của nó và mọi thiết lập) và một digest của mỗi trường mà nó đọc, như được liệt kê trong bảng bộ đánh giá
Phân tíchkế hoạch phân tích, chỉ số, mức tin cậy, digest của bộ kiểm thử và mọi đầu vào mà nó đã đếm
Cổngmọi phân tích, digest của chính sách, việc lần chạy đã hoàn tất hay chưa, và trạng thái hiệu lực của mỗi bộ đánh giá mà các quyết định viện dẫn

Những gì Oloproof không thể thấy là do bạn khai báo:

  • Hành vi của một hệ thống HTTP nằm trên máy chủ. Hãy đổi system.version mỗi khi thứ đằng sau URL thay đổi, nếu không một đầu ra cũ đã lưu đệm sẽ đứng thay cho hệ thống mới.
  • Các module phụ trợ của một callable chỉ được băm khi code_paths khớp với chúng. Không có nó, việc sửa một module phụ trợ không thay đổi phiên bản.
  • Một phương thức hoặc một đối tượng callable phải khai báo một phiên bản, và phiên bản phải thay đổi khi trạng thái của đối tượng thay đổi.
  • Một chỉ mục RAG được nhận diện bằng index_version; hãy đổi nó khi chỉ mục được xây dựng lại.
  • Danh tính của một giám khảo mô hình là các thiết lập của nó, không phải trọng số của nhà cung cấp. Bộ nhớ đệm không phát hiện được việc một nhà cung cấp cập nhật mô hình đằng sau cùng một tên.
  • Một @evaluator tùy chỉnh băm tệp module định nghĩa nó, và các phán quyết của nó chỉ được tái sử dụng giữa các lần chạy khi nó khai báo cacheable=True. Các giám khảo rubric có sẵn có thể lưu đệm; các bộ đánh giá tất định được tính lại, việc này rẻ.

Công việc đã lưu đệm nằm trong kho lưu trữ cục bộ của dự án, .oloproof/store.sqlite bên cạnh oloproof.yaml (hoặc dưới OLOPROOF_HOME). Xóa kho lưu trữ sẽ loại bỏ mọi bộ nhớ đệm và mọi lần chạy. Trong một không gian làm việc được lưu trữ, engine không tái sử dụng các lần thực thi, phán quyết hay phân tích đã lưu đệm, vì một lần push có thể ghi vào chúng; nó tính lại.