synthesizer
synthesizer
¶
Synthesize personal benchmarks from interaction traces.
Classes¶
PersonalBenchmarkSample
dataclass
¶
PersonalBenchmarkSample(
trace_id: str,
query: str,
reference_answer: str,
agent: str = "",
category: str = "chat",
feedback_score: float = 0.0,
metadata: Dict[str, Any] = dict(),
)
A single sample in a personal benchmark.
PersonalBenchmark
dataclass
¶
PersonalBenchmark(
workflow_id: str,
samples: List[PersonalBenchmarkSample] = list(),
created_at: float = 0.0,
)
A synthesized benchmark from user interaction traces.
PersonalBenchmarkSynthesizer
¶
PersonalBenchmarkSynthesizer(trace_store: TraceStore)
Mines interaction traces into a reusable personal benchmark.
Source code in src/diapason/learning/optimize/personal/synthesizer.py
Methods:¶
synthesize
¶
synthesize(
workflow_id: str = "default",
min_feedback: float = 0.7,
max_samples: int = 100,
) -> PersonalBenchmark
Build a personal benchmark from high-quality traces.
- Query traces that have feedback >= min_feedback.
- Group by query class (agent + first 50 chars of query).
- For each class, pick the trace with the highest feedback as reference.
- Return a :class:
PersonalBenchmarkcapped at max_samples.