← Files RAGOpsARCHIVED FILE

skills/evaluate-ai-release/scripts/vendor/ragops/benchmarks.py

970 Bytes · Oct 2, 2026 · 00:29 UTC

↓ Download file

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