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

1"""黄金集(T13,OV4)。 

2 

3GoldenCase:一条黄金样例(输入样本引用 + 期望最低评分 + 备注)。 

4GoldenSet:从 YAML 加载回归基线(samples/ 真实脱敏样本作为 input_ref 基础)。 

5""" 

6 

7from __future__ import annotations 

8 

9from dataclasses import dataclass 

10from pathlib import Path 

11 

12import yaml 

13from pydantic import BaseModel, Field 

14 

15 

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 = "" 

21 

22 

23class GoldenSet: 

24 def __init__(self, cases: list[GoldenCase]) -> None: 

25 self.cases = cases 

26 

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)