butler/eval_integration/suites/deepeval_suite.py
Rama main · réplica de lectura del repositorio original.
"""DeepEval agent metrics suite (opt-in, MOD-8)."""
from __future__ import annotations
from butler.contracts.eval_ports import SuiteRunResult
from butler.eval_integration.oss.deepeval_runner import deepeval_available, run_deepeval_agent
class DeepEvalAgentSuite:
suite_id = "deepeval_agent"
layer = "L-D"
def run(
self,
*,
warn_only: bool = False,
sync_dataset: bool = False,
push_langfuse: bool | None = None,
) -> SuiteRunResult:
if not deepeval_available():
return SuiteRunResult(
suite_id=self.suite_id,
ok=True,
layer=self.layer,
metrics={"skipped": True, "reason": "deepeval not installed"},
)
ok, metrics = run_deepeval_agent(warn_only=warn_only)
return SuiteRunResult(
suite_id=self.suite_id,
ok=ok,
layer=self.layer,
metrics=metrics,
)