← Files RAGOpsARCHIVED FILE
skills/evaluate-ai-release/scripts/vendor/ragops/benchmarks.py
970 Bytes · Oct 2, 2026 · 00:29 UTC
from __future__ import annotations
from collections import Counter
from typing import Any
from ragops.models import Scenario
def scenario_summary(scenario: Scenario) -> dict[str, Any]:
"""Return deterministic benchmark coverage metadata for authoring and review."""
categories = Counter(case.category for case in scenario.cases)
severities = Counter(case.severity for case in scenario.cases)
languages = Counter(case.language for case in scenario.cases)
attacks = Counter(
case.attack_category for case in scenario.cases if case.attack_category is not None
)
return {
"schema_version": scenario.schema_version,
"scenario_id": scenario.id,
"case_count": len(scenario.cases),
"categories": dict(sorted(categories.items())),
"severities": dict(sorted(severities.items())),
"languages": dict(sorted(languages.items())),
"attack_categories": dict(sorted(attacks.items())),
}
SHA-256: ce93fe5e85d7fb10bf85ae29cfe390cd2a32100d220c78b62824233de78db5e8