Skip to content

開始使用

撰寫測試套件

一個測試套件由兩個檔案和一個資料集組成。oloproof init 會為兩者產生骨架,而骨架中附有註解,因為第一次新手引導演練有四次嘗試是卡在一個缺少的字串,而不是缺少的功能。

專案檔案

oloproof.yaml 宣告要量測什麼,以及由什麼來量測。

version: 1
project: example
dataset: data/example.jsonl
system:
  name: example-support-bot
  version: "1"
  callable: app:answer
  config: {}
evaluators:
  - type: exact_match
    criterion: exact_label
    field: label

system.callable 是受測對象的匯入路徑。criterion 是指標、門檻值和報告在引用這個評估器結果時共用的名稱,因此值得選一個你在閘門中一眼就能認出的詞。

評估器類型

此檔案接受的每一種 type:,依類別列出。被拒絕的欄位會得到該評估器接受的欄位清單作為回應,因此猜錯之後,只要再執行一次就能改對。

類別類型
確定性exact_match、contains、regex、json_schema
LLM 評審rubric_judge、groundedness_judge、citation_support_judge、probability_judge、cascade
模型model_classifier
檢索hit_rate、recall、mrr、ndcg、citation_validity
代理agent_max_steps、agent_tool_called、agent_no_tool_loop、agent_tool_sequence、agent_no_undeclared_tool、agent_constraints_satisfied
多代理agent_route、agent_tool_permissions、agent_max_handoffs
預測predictive_correct、predictive_precision、predictive_recall、predictive_ranking、predictive_brier、predictive_log_loss、predictive_absolute_error

使用非 OpenAI 端點的 LLM 評審需要另外兩個欄位:base_url: 與 api_key_env:。金鑰在呼叫時從環境變數讀取,從不儲存。

執行

oloproof run

一次執行會跑過每個案例,用每個評估器評判每個案例,並將結果儲存為以內容定址的紀錄。對未變更的系統和未變更的資料集再次執行時,會重複使用已有的結果,這就是為什麼重複執行幾乎不花成本,也不計量。

oloproof plan RUN_ID --run 會回報要讓一條未決定的規則有定論需要付出什麼,並依該次執行實際的花費估價。若改為提供比較 ID,則不需要旗標。

重複量測

只量測一次的案例,只能告訴你一次發生了什麼。replicates: 會對每個案例量測不只一次,並回報有多少案例在相同的量測之間改變了判定。

在信任任何比較之前,這個數字值得先知道:針對一個線上助理,大約每九個觀察到的案例中就有一個在相同的執行之間改變了判定。

下一步