Files
siemens_ragas/rag_eval/config/validators.py

21 lines
872 B
Python
Raw Permalink Normal View History

2026-06-12 14:02:15 +08:00
"""Cross-field validation helpers for resolved runtime scenarios."""
from __future__ import annotations
from rag_eval.metrics.registry import SUPPORTED_METRICS
from rag_eval.shared.models import Scenario
def validate_scenario(scenario: Scenario) -> None:
"""Validate metric selection and mode-specific runtime constraints."""
unsupported = [name for name in scenario.metrics if name not in SUPPORTED_METRICS]
if unsupported:
supported = ", ".join(sorted(SUPPORTED_METRICS))
raise ValueError(
f"Unsupported metrics: {', '.join(unsupported)}. Supported metrics: {supported}"
)
if scenario.mode == "offline" and scenario.app_adapter is not None:
raise ValueError("offline mode should not define app_adapter.")
if scenario.runtime.batch_size < 1:
raise ValueError("runtime.batch_size must be >= 1.")