Skip to content

Commit 9b54354

Browse files
committed
add EvalStatus enum
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io>
1 parent d826b9a commit 9b54354

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

packages/evaluator-sdk-py/src/agentevals_evaluator_sdk/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def my_evaluator(input: EvalInput) -> EvalResult:
2424
from .types import (
2525
EvalInput,
2626
EvalResult,
27+
EvalStatus,
2728
IntermediateStepData,
2829
InvocationData,
2930
ToolCallData,
@@ -34,6 +35,7 @@ def my_evaluator(input: EvalInput) -> EvalResult:
3435
"evaluator",
3536
"EvalInput",
3637
"EvalResult",
38+
"EvalStatus",
3739
"IntermediateStepData",
3840
"InvocationData",
3941
"ToolCallData",

packages/evaluator-sdk-py/src/agentevals_evaluator_sdk/types.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from __future__ import annotations
99

10+
from enum import Enum
1011
from typing import Any, Optional
1112

1213
from pydantic import BaseModel, Field
@@ -63,13 +64,21 @@ class EvalInput(BaseModel):
6364
expected_invocations: Optional[list[InvocationData]] = None
6465

6566

67+
class EvalStatus(str, Enum):
68+
"""Wire JSON uses the string values (stable protocol with agentevals CLI)."""
69+
70+
PASSED = "PASSED"
71+
FAILED = "FAILED"
72+
NOT_EVALUATED = "NOT_EVALUATED"
73+
6674
class EvalResult(BaseModel):
6775
"""Output payload expected from a custom evaluator script/container on stdout."""
6876

6977
score: float = Field(ge=0.0, le=1.0)
70-
status: Optional[str] = Field(
78+
status: Optional[EvalStatus] = Field(
7179
default=None,
72-
description='One of "PASSED", "FAILED", "NOT_EVALUATED". Derived from score vs threshold if omitted.',
80+
description="One of EvalStatus.PASSED, EvalStatus.FAILED, EvalStatus.NOT_EVALUATED. Derived from score vs threshold if omitted.",
81+
enum=EvalStatus,
7382
)
7483
per_invocation_scores: list[Optional[float]] = Field(default_factory=list)
7584
details: Optional[dict[str, Any]] = None

0 commit comments

Comments
 (0)