Ctrl K
ComunidadGuías…

butler/eval_integration/suite_registry.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""Eval suite registry (MOD-3)."""

from __future__ import annotations

from typing import Callable

from butler.contracts.eval_ports import EvalSuitePort

from butler.eval_integration.suites.agent_weekly_suite import AgentWeeklySuite
from butler.eval_integration.suites.b9_oracle_suite import B9OracleSuite
from butler.eval_integration.suites.capability_suite import CapabilitySuite
from butler.eval_integration.suites.deepeval_suite import DeepEvalAgentSuite
from butler.eval_integration.suites.hermes_gate_suite import HermesGateSuite
from butler.eval_integration.suites.memory_mb_suite import MemoryMbSuite
from butler.eval_integration.suites.ragas_suite import RagasMemorySuite
from butler.eval_integration.suites.regression_suite import RegressionSuite
from butler.eval_integration.suites.tcr_suite import TcrSuite
from butler.eval_integration.suites.wechat_corpus_suite import WechatCorpusSuite

_SUITE_FACTORIES: dict[str, Callable[[], EvalSuitePort]] = {}


def register_suite_factory(suite_id: str, factory: Callable[[], EvalSuitePort]) -> None:
    _SUITE_FACTORIES[suite_id] = factory


def list_suite_ids() -> list[str]:
    return sorted(_SUITE_FACTORIES.keys())


def get_suite(suite_id: str) -> EvalSuitePort:
    factory = _SUITE_FACTORIES.get(suite_id)
    if factory is None:
        raise KeyError(f"Unknown eval suite: {suite_id}")
    return factory()


def _register_builtins() -> None:

    register_suite_factory("tcr", TcrSuite)
    register_suite_factory("agent_weekly", AgentWeeklySuite)
    register_suite_factory("capability", CapabilitySuite)
    register_suite_factory("regression", RegressionSuite)
    register_suite_factory("wechat_corpus", WechatCorpusSuite)
    register_suite_factory("memory_mb", MemoryMbSuite)
    register_suite_factory("hermes_gate", HermesGateSuite)
    register_suite_factory("b9_oracle", B9OracleSuite)
    register_suite_factory("deepeval_agent", DeepEvalAgentSuite)
    register_suite_factory("ragas_memory", RagasMemorySuite)


_register_builtins()