mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-31 03:12:16 +00:00
Add trace and power fields to EvalResult and RunSummary (Task 5)
- Add trace_steps and trace_energy_joules to EvalResult - Add avg_power_watts, total_input_tokens, total_output_tokens, and trace_step_type_stats to RunSummary - Add 3 tests covering new field defaults and setters Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
392218735d
commit
b9a89f1ac7
@@ -44,6 +44,8 @@ class EvalResult:
|
||||
energy_per_output_token_joules: float = 0.0
|
||||
throughput_per_watt: float = 0.0
|
||||
mean_itl_ms: float = 0.0
|
||||
trace_steps: int = 0
|
||||
trace_energy_joules: float = 0.0
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
@@ -122,6 +124,10 @@ class RunSummary:
|
||||
warmup_samples_excluded: int = 0
|
||||
steady_state_reached: bool = False
|
||||
energy_method: str = ""
|
||||
avg_power_watts: float = 0.0
|
||||
total_input_tokens: int = 0
|
||||
total_output_tokens: int = 0
|
||||
trace_step_type_stats: Dict[str, Dict[str, float]] = field(default_factory=dict)
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
@@ -209,6 +209,35 @@ class TestRunSummary:
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
class TestEvalResultTraceFields:
|
||||
def test_trace_fields_exist(self):
|
||||
r = EvalResult(record_id="test", model_answer="hi")
|
||||
assert r.trace_steps == 0
|
||||
assert r.trace_energy_joules == 0.0
|
||||
|
||||
def test_trace_fields_set(self):
|
||||
r = EvalResult(
|
||||
record_id="test", model_answer="hi",
|
||||
trace_steps=5, trace_energy_joules=100.0,
|
||||
)
|
||||
assert r.trace_steps == 5
|
||||
assert r.trace_energy_joules == 100.0
|
||||
|
||||
|
||||
class TestRunSummaryTraceFields:
|
||||
def test_trace_aggregate_fields(self):
|
||||
s = RunSummary(
|
||||
benchmark="test", category="test", backend="test",
|
||||
model="test", total_samples=1, scored_samples=1,
|
||||
correct=1, accuracy=1.0, errors=0,
|
||||
mean_latency_seconds=1.0, total_cost_usd=0.0,
|
||||
)
|
||||
assert s.avg_power_watts == 0.0
|
||||
assert s.trace_step_type_stats == {}
|
||||
assert s.total_input_tokens == 0
|
||||
assert s.total_output_tokens == 0
|
||||
|
||||
|
||||
class TestMetaConfig:
|
||||
def test_defaults(self):
|
||||
m = MetaConfig()
|
||||
|
||||
Reference in New Issue
Block a user