金融 Rubric 評測器
使用固定金融品質規則評測回答。不要為每道題臨時生成 criterion,也不要在評測過程中提供新的金融建議。
執行評測
1. 讀取規則與數據契約
先讀取:
references/finance-rubric.json:維度觸發條件、通過條件、不通過條件與邊界規則。references/data-schema.md:輸入輸出欄位與資料約束。
2. 準備任務
將使用者提供的內容整理為 assets/eval-case-template.json 的結構。只評測一個維度時,指定 dimension_id:
python scripts/prepare_eval.py --input assets/sample-case.json
完整評測同一個回答時,生成三個相互隔離的任務:
python scripts/prepare_eval.py --input assets/sample-case.json --all-dimensions
批次輸入可使用 JSON 陣列或 JSONL。每條記錄仍然只對應一個維度;使用 --all-dimensions 時,腳本會為每條記錄展開三個獨立任務。
3. 獨立判斷每個任務
嚴格按以下順序執行:
- 檢查當前維度的全部
trigger_conditions;任一不滿足,返回「不適用」。 - 只讀取當前維度的
judgment_rule、pass_conditions、fail_conditions與boundary_rules。 - 僅使用輸入中的參考材料、標準答案、對話上下文與任務要求判斷。
- 引用待評回答中的直接證據,輸出一個結構化判斷。
始終隔離維度:
- 已表達內容的正誤屬於準確性;
- 資訊遺漏屬於完整性;
- 已提供內容是否清晰、可理解、可執行屬於幫助性;
- 同一問題不要在多個維度用相同理由重複判錯。
輸出:
{
"case_id": "fin-001",
"dimension_id": "accuracy",
"result": "錯",
"evidence": ["回答中的原文或精確定位"],
"reason": "錯:核心結論與參考材料相反。"
}
結果語義:
對:滿足當前維度;錯:違反當前維度;不適用:當前維度不適用或證據不足。「不適用」不是「對」,統計通過率時必須排除。
4. 校驗並彙總
校驗單條判斷:
python scripts/score_result.py --input assets/sample-judgment.json
批次輸入可使用 JSON 陣列或 JSONL。腳本會輸出總體與分維度的「對」「錯」「不適用」數量、適用率及通過率。若每條判斷附帶 human_judgment.result,還會計算人機一致率、錯誤樣本召回率與誤召率。
python scripts/score_result.py --input experiment/judgments.example.jsonl --summary-only
腳本不再把判斷映射成分數。「不適用」始終保留為獨立狀態,彙總統計時單獨排除。
金融領域邊界
- 只依據給定參考材料、標準答案與上下文判斷。
- 準確性缺少可靠核驗材料時返回「不適用」,不要用外部常識補判。
- 不要假設所有金融回答都需要免責聲明;只有參考材料或任務要求明確需要時,才按對應維度判斷。
- 準確性維度中,無依據的收益、審批、賠付、時效或無風險保證直接判不通過。
- 不要因為「金融風險高」而擴大使用者問題的必要資訊範圍。
校準規則
- 使用
experiment/regression-set.example.jsonl建立最小回歸集。 - 用開發集定位誤判並修改
references/finance-rubric.json。 - 遞增
rubric_version,再用未參與修改的留出集驗收。 - 按
references/report-checklist.md記錄版本、召回率與誤召率。
不要把某個產品的利率、費用、期限或資格寫進通用 Rubric;把這些事實放在樣本的 reference_context 中。
配套資源
assets/sample-case.json:可直接運行的定期存款樣本;assets/sample-judgment.json:對應判斷範例;experiment/regression-set.example.jsonl:金融邊界最小回歸集;experiment/judgments.example.jsonl:可直接運行的批量判斷與人工標籤範例;references/report-checklist.md:報告口徑與版本追溯清單。