Skip to content

FlagSafe Adapter

The FlagSafe adapter converts internal SafetyReport objects into a simple policy-style payload.

Current output fields include:

  • action: BLOCK or ALLOW
  • reason: risk categories
  • evidence: token indices or other evidence references
  • score: risk score
  • attribution_score: optional attribution confidence

Minimal example:

from SafeLens.adapters import FlagSafeAdapter
from SafeLens.core.base import SafetyReport

rule = FlagSafeAdapter.to_flagsafe_rule(
    SafetyReport(flagged=True, risk_score=0.9, risk_category=["jailbreak"])
)

FlagSafe adapter boundary.

FlagSafeAdapter

Convert SafeLens reports to a FlagSafe-compatible policy payload.

Source code in src/SafeLens/adapters/flagsafe_adapter.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class FlagSafeAdapter:
    """Convert SafeLens reports to a FlagSafe-compatible policy payload."""

    @staticmethod
    def to_flagsafe_rule(report: SafetyReport) -> dict[str, Any]:
        """Convert one report into an allow/block rule."""
        return {
            "action": "BLOCK" if report.flagged else "ALLOW",
            "reason": report.risk_category,
            "evidence": report.evidence_tokens,
            "score": report.risk_score,
            "attribution_score": report.attribution_score,
            "metadata": {
                "sample_id": report.sample_id,
                "source": "safelens",
            },
        }

    @staticmethod
    def to_flagsafe_batch(reports: list[SafetyReport]) -> list[dict[str, Any]]:
        """Convert several reports into FlagSafe rules."""
        return [FlagSafeAdapter.to_flagsafe_rule(report) for report in reports]

to_flagsafe_batch(reports) staticmethod

Convert several reports into FlagSafe rules.

Source code in src/SafeLens/adapters/flagsafe_adapter.py
28
29
30
31
@staticmethod
def to_flagsafe_batch(reports: list[SafetyReport]) -> list[dict[str, Any]]:
    """Convert several reports into FlagSafe rules."""
    return [FlagSafeAdapter.to_flagsafe_rule(report) for report in reports]

to_flagsafe_rule(report) staticmethod

Convert one report into an allow/block rule.

Source code in src/SafeLens/adapters/flagsafe_adapter.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@staticmethod
def to_flagsafe_rule(report: SafetyReport) -> dict[str, Any]:
    """Convert one report into an allow/block rule."""
    return {
        "action": "BLOCK" if report.flagged else "ALLOW",
        "reason": report.risk_category,
        "evidence": report.evidence_tokens,
        "score": report.risk_score,
        "attribution_score": report.attribution_score,
        "metadata": {
            "sample_id": report.sample_id,
            "source": "safelens",
        },
    }