File size: 618 Bytes
7f611c5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from dataclasses import dataclass, field
from typing import Any, Dict, Union
@dataclass
class EvaluationResult:
"""
Result of program evaluation containing both metrics and optional artifacts
"""
metrics: Dict[str, float]
artifacts: Dict[str, Union[str, bytes]] = field(default_factory=dict)
@classmethod
def from_dict(cls, metrics: Dict[str, float]) -> "EvaluationResult":
return cls(metrics=metrics)
def to_dict(self) -> Dict[str, Any]:
result = dict(self.metrics)
if self.artifacts:
result["artifacts"] = self.artifacts
return result
|