Spaces:
Running
Running
| """ | |
| Pydantic schemas for ReguAI system models, claims, verification results, and audit ledger. | |
| """ | |
| from __future__ import annotations | |
| from enum import Enum | |
| from typing import List, Optional, Dict, Any | |
| from pydantic import BaseModel, Field | |
| class AssertionStatus(str, Enum): | |
| IMPLEMENTED = "IMPLEMENTED" | |
| PLANNED = "PLANNED" | |
| ABSENT = "ABSENT" | |
| UNKNOWN = "UNKNOWN" | |
| class RegulatoryFramework(str, Enum): | |
| EU_AI_ACT = "EU_AI_ACT" | |
| NIST_AI_RMF = "NIST_AI_RMF" | |
| ISO_42001 = "ISO_42001" | |
| class EntityCategory(str, Enum): | |
| RISK_MANAGEMENT = "RISK_MANAGEMENT" # Art 9 / NIST GOVERN | |
| DATA_GOVERNANCE = "DATA_GOVERNANCE" # Art 10 / NIST MAP | |
| BIAS_MITIGATION = "BIAS_MITIGATION" # Art 10(2)(f) / NIST MEASURE | |
| TECHNICAL_DOCUMENTATION = "TECHNICAL_DOCUMENTATION" # Art 11 & Annex IV | |
| RECORD_KEEPING = "RECORD_KEEPING" # Art 12 / Logging | |
| TRANSPARENCY = "TRANSPARENCY" # Art 13 | |
| HUMAN_OVERSIGHT = "HUMAN_OVERSIGHT" # Art 14 / Human-in-the-loop | |
| ACCURACY_ROBUSTNESS = "ACCURACY_ROBUSTNESS" # Art 15(1) | |
| CYBERSECURITY = "CYBERSECURITY" # Art 15(4) | |
| FAIL_SAFE = "FAIL_SAFE" # Art 14(4)(e) / Art 15 | |
| class ExtractedClaim(BaseModel): | |
| claim_id: str | |
| entity_text: str | |
| category: EntityCategory | |
| assertion_status: AssertionStatus | |
| confidence: float = Field(ge=0.0, le=1.0) | |
| source_span: Optional[tuple[int, int]] = None | |
| normative_article: str | |
| evidence_quote: str | |
| requires_auditor_review: bool = False | |
| auditor_verified: Optional[bool] = None | |
| auditor_notes: Optional[str] = None | |
| class SystemMetadata(BaseModel): | |
| system_id: str | |
| name: str | |
| version: str = "1.0.0" | |
| domain: str | |
| intended_purpose: str | |
| eu_risk_classification: str = "High-Risk (Annex III)" | |
| developer_name: str = "Enterprise AI Labs" | |
| deployment_context: str = "Production" | |
| class SystemSpecification(BaseModel): | |
| metadata: SystemMetadata | |
| raw_document_text: str | |
| extracted_claims: List[ExtractedClaim] = Field(default_factory=list) | |
| custom_attributes: Dict[str, Any] = Field(default_factory=dict) | |
| class ValidationViolation(BaseModel): | |
| focus_node: str | |
| result_path: str | |
| source_constraint_component: str | |
| message: str | |
| severity: str = "Violation" # Violation, Warning, Info | |
| regulatory_article: str | |
| normative_reference: str | |
| remediation_guidance: str | |
| class AuditProvenance(BaseModel): | |
| input_doc_sha256: str | |
| graph_triples_sha256: str | |
| ruleset_sha256: str | |
| certificate_sha256: str | |
| prov_o_rdf: str | |
| timestamp_utc: str | |
| digital_signature: str | |
| class ConformityReport(BaseModel): | |
| report_id: str | |
| system_metadata: SystemMetadata | |
| overall_conforms: bool | |
| conformity_score: float = Field(ge=0.0, le=100.0) | |
| total_requirements_evaluated: int | |
| passed_requirements_count: int | |
| violations: List[ValidationViolation] = Field(default_factory=list) | |
| warnings: List[ValidationViolation] = Field(default_factory=list) | |
| claims_analyzed: List[ExtractedClaim] = Field(default_factory=list) | |
| borderline_claims: List[ExtractedClaim] = Field(default_factory=list) | |
| provenance: AuditProvenance | |
| generated_at_utc: str | |
| executive_summary: str | |
| fine_exposure: Optional[Dict[str, Any]] = None | |
| harmonized_frameworks: Optional[Dict[str, Any]] = None | |