Coverage for src\genesis\eval\golden_set.py: 100%
18 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 14:20 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 14:20 +0800
1"""黄金集(T13,OV4)。
3GoldenCase:一条黄金样例(输入样本引用 + 期望最低评分 + 备注)。
4GoldenSet:从 YAML 加载回归基线(samples/ 真实脱敏样本作为 input_ref 基础)。
5"""
7from __future__ import annotations
9from dataclasses import dataclass
10from pathlib import Path
12import yaml
13from pydantic import BaseModel, Field
16class GoldenCase(BaseModel):
17 id: str
18 input_ref: str
19 expected_min_score: float = Field(default=0.7, ge=0.0, le=1.0)
20 note: str = ""
23class GoldenSet:
24 def __init__(self, cases: list[GoldenCase]) -> None:
25 self.cases = cases
27 @classmethod
28 def load(cls, path: Path | str) -> "GoldenSet":
29 data = yaml.safe_load(Path(path).read_text(encoding="utf-8")) or {}
30 cases = [GoldenCase(**c) for c in data.get("cases", [])]
31 return cls(cases=cases)