Standards API Reference¶
Standard¶
The Standard dataclass represents a complete AI risk management standard.
from airiskguard.standards import STANDARD_V1
# Access standard metadata
print(STANDARD_V1.standard_id) # "AIRMS"
print(STANDARD_V1.version) # "1.0"
print(STANDARD_V1.total_controls) # 53
Methods¶
get_domain(domain_id: str) -> RiskDomain | None
Retrieve a domain by its ID.
get_control(control_id: str) -> Control | None
Look up a specific control.
ctrl = STANDARD_V1.get_control("SEC-ADV-01")
print(ctrl.name) # "Prompt Injection Detection"
print(ctrl.automatable) # True
print(ctrl.checker_mapping) # "security"
get_controls_for_framework(framework: str) -> list[Control]
Get all controls mapped to an external framework.
get_automatable_controls() -> list[Control]
Get all controls that can be automated via airiskguard checkers.
StandardAssessor¶
The assessment engine that evaluates AI systems against a standard.
from airiskguard.standards import STANDARD_V1, StandardAssessor
assessor = StandardAssessor(STANDARD_V1)
Methods¶
set_control_status(control_id, *, implemented, maturity, findings, evidence)
Record the implementation status for a control.
from airiskguard.standards.types import MaturityLevel
assessor.set_control_status(
"ACC-GOV-01",
implemented=True,
maturity=MaturityLevel.DEFINED, # or integer 1-5
findings=["Policy document reviewed"],
evidence=["policy-v2.pdf approved 2026-01-15"],
)
apply_checker_results(risk_report: RiskReport)
Map automated checker results to standard controls. Passed checks get MANAGED maturity; failed checks get DEVELOPING.
from airiskguard import RiskGuard
guard = RiskGuard()
report = await guard.evaluate(input_data, output_data, model_id="my-model")
assessor.apply_checker_results(report)
assess(model_id: str = "default") -> AssessmentResult
Run a full assessment and return structured results.
result = assessor.assess(model_id="my-model")
print(result.overall_score) # 0.0 - 1.0
print(result.overall_maturity) # MaturityLevel enum
print(result.compliant) # True if all controls meet requirements
print(result.get_gaps()) # List of gap descriptions
print(result.summary()) # Dict with full summary
get_coverage_by_framework(framework: str) -> dict
Check implementation coverage for a specific external framework.
coverage = assessor.get_coverage_by_framework("EU AI Act")
# {
# "framework": "EU AI Act",
# "total_controls": 38,
# "implemented": 12,
# "coverage_pct": 31.6,
# "gaps": ["SEC-ADV-01", "SEC-ADV-02", ...]
# }
AssessmentResult¶
Returned by assessor.assess().
Properties¶
| Property | Type | Description |
|---|---|---|
overall_score | float | 0.0 to 1.0, weighted across domains |
overall_maturity | MaturityLevel | Minimum maturity across all domains |
compliant | bool | True if all required controls meet maturity |
domain_results | list[DomainResult] | Per-domain assessment results |
recommendations | list[str] | Prioritized improvement recommendations |
timestamp | str | ISO format assessment timestamp |
Methods¶
summary() -> dict — Returns a dict with key metrics:
{
"standard": "AIRMS",
"version": "1.0",
"model_id": "my-model",
"overall_score": 0.42,
"overall_maturity": "Initial",
"compliant": False,
"controls_implemented": 18,
"controls_total": 53,
"coverage_pct": 34.0,
"gap_count": 35,
"timestamp": "2026-01-15T10:30:00"
}
get_gaps() -> list[str] — All gaps across all domains.
MaturityLevel¶
from airiskguard.standards.types import MaturityLevel
MaturityLevel.INITIAL # 1 - Ad-hoc, reactive
MaturityLevel.DEVELOPING # 2 - Basic processes, inconsistent
MaturityLevel.DEFINED # 3 - Standardized, documented
MaturityLevel.MANAGED # 4 - Quantitatively measured
MaturityLevel.OPTIMIZING # 5 - Continuous improvement