# executives/nexus_audit_expert.py import os import pandas as pd import warnings warnings.filterwarnings("ignore") def generer_corrections_audit(): print("==================================================") print("🔬 AUDIT EXPERT NEXUS - V_ULTIME DE SÉCURISATION") print("==================================================\n") # LA VÉRITÉ ABSOLUE (Ground Truth - Alignement strict SGDSN) # Format : [texte, domaine, severite, impact, cible, friction] # Cibles : 0 = CITOYEN | 2 = VIP/INFRA | 4 = SOUVERAIN/PRÉSIDENT corrections_manuelles = [ # ===================================================================== # CATEGORIE 1 : CAS LACONIQUES & PATHOLOGIES VITALES (Le verrou "Évanoui") # ===================================================================== ["évanoui", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["Il s'est évanoui devant moi, il ne bouge plus.", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["Inconscient", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["Inconsciente au sol", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["Arrêt cardiaque", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["Ne respire plus", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["Inanimé", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["AVC suspecté, elle a la bouche de travers", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["Infarctus", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], ["Coma", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], # ===================================================================== # CATEGORIE 2 : VARIATIONS DE PERSONAS (Panique, Sourd, Agressif) # ===================================================================== # Persona : Paniqué (Phrases destructurées, cris) ["AAAAH AU SECOURS Y A DU SANG PARTOUT VITE VITE VITE", "MÉDICAL", 4, 1, 0, "MANQUE_CONTEXTE"], ["OH MON DIEU LE FEU BRULE TOUT À L'AIDE", "POMPIER", 4, 2, 0, "MANQUE_LIEU"], # Persona : Agressif / Frustré (Insultes ou refus initial de coopérer) ["Bouge ton cul l'IA, envoie les flics y a un mec avec un couteau !", "POLICE", 4, 1, 0, "MANQUE_LIEU"], ["Je m'en fous de tes questions de merde, mon pote saigne !", "MÉDICAL", 4, 1, 0, "MANQUE_LIEU"], # Persona : Sourd / Télégraphique (Mots-clés bruts sans syntaxe) ["URGENCE ACCOUCHEMENT FEMME ADRESSE", "MÉDICAL", 4, 2, 0, "MANQUE_LIEU"], ["VOLEUR INTÉRIEUR MAISON MAISONS", "POLICE", 4, 1, 0, "MANQUE_LIEU"], # ===================================================================== # CATEGORIE 3 : BYPASS ALPHA-SOUVERAIN (Cible = 4 / Élysée, Ministères) # ===================================================================== ["Le Président de la République vient de faire un malaise", "MÉDICAL", 4, 4, 4, "MANQUE_LIEU"], ["Attaque armée terroriste contre le convoi présidentiel", "POLICE", 4, 4, 4, "MANQUE_LIEU"], ["Intrusion de commandos suspectés au Palais de l'Élysée", "POLICE", 4, 4, 4, "MANQUE_CONTEXTE"], ["Incendie majeur criminel à l'Assemblée Nationale", "POMPIER", 4, 4, 4, "MANQUE_LIEU"], ["Le Premier Ministre est blessé par balle à la poitrine", "MÉDICAL", 4, 4, 4, "MANQUE_LIEU"], ["Cyberattaque par rançongiciel sur le réseau du Ministère des Armées", "CYBERSÉCURITÉ", 4, 4, 4, "MANQUE_LIEU"], ["Sabotage électrique total sur le Centre de Commandement de la Défense", "ÉNERGIE & INFRASTRUCTURES", 4, 4, 4, "MANQUE_CONTEXTE"], # ===================================================================== # CATEGORIE 4 : FICTION, JEUX VIDÉOS & PIÈGES DE SÉMANTIQUE # ===================================================================== ["Il n'y a pas d'arme, c'est juste une dispute verbale", "POLICE", 2, 1, 0, "COMPLET"], ["Ce n'est pas urgent, je veux juste un renseignement administratif", "NON_URGENT", 1, 1, 0, "COMPLET"], ["Je regarde un film d'action où une bombe explose au centre commercial", "NON_URGENT", 1, 1, 0, "COMPLET"], ["Dans mon jeu vidéo GTA, le mec s'est pris une balle de sniper", "NON_URGENT", 1, 1, 0, "COMPLET"], ["Ma pizza est froide, c'est un scandale, je vais porter plainte !", "NON_URGENT", 1, 1, 0, "COMPLET"], ["C'est une blague, on rigolait entre potes y a rien en fait", "NON_URGENT", 1, 1, 0, "COMPLET"], # ===================================================================== # CATEGORIE 5 : SCÉNARIOS LOGISTIQUES & RESTE DES DOMAINES DE LA MATRICE # ===================================================================== ["Inondation massive suite à une rupture de canalisation dans la rue", "POMPIER", 3, 2, 0, "MANQUE_LIEU"], ["Le serveur de base de données principal ne répond plus au ping", "CYBERSÉCURITÉ", 3, 2, 2, "MANQUE_CONTEXTE"], ["Toutes les rames de la ligne de métro sont immobilisées dans le tunnel", "TRANSPORT & MOBILITÉ", 3, 4, 2, "MANQUE_LIEU"], ["Une nappe de pollution chimique dévale le fleuve vers la ville", "RISQUES ENVIRONNEMENTAUX", 4, 4, 2, "MANQUE_LIEU"], ["Les feux de signalisation de tout le carrefour sont éteints", "SERVICES URBAINS", 2, 3, 0, "MANQUE_LIEU"], ["Une personne âgée est sans abri sous une chaleur de 40 degrés", "ASSISTANCE SOCIALE", 3, 1, 0, "MANQUE_LIEU"], ["Un chien agressif attaque les passants sur la place", "ANIMALIER", 2, 2, 0, "MANQUE_LIEU"], ["Un ennemi armé est sur la route, il tire sur les voitures","POLICE",4,2,0,"MANQUE_LIEU"], ["Le feu tricolore est en panne au carrefour, c'est dangereux","SERVICES URBAINS",2,2,0,"MANQUE_LIEU"], ["Un feu de circulation est tombé sur la chaussée","SERVICES URBAINS",2,1,0,"MANQUE_LIEU"], ["Attaque par virus informatique sur nos serveurs","CYBERSÉCURITÉ",4,3,2,"MANQUE_LIEU"], ["J'ai attrapé un virus et je crache du sang","MÉDICAL",4,1,0,"MANQUE_LIEU"], ["Fuite de données bancaires sur le réseau","CYBERSÉCURITÉ",4,4,2,"MANQUE_LIEU"], ["Fuite d'eau massive au milieu de la rue","SERVICES URBAINS,2,2,0,MANQUE_LIEU"], ["Fuite de gaz toxique près de l'usine Seveso","RISQUES ENVIRONNEMENTAUX",4,3,2,"MANQUE_LIEU"], ["Le réseau internet est complètement coupé au bureau","DIGITAL SUPPORT",2,2,0,"MANQUE_LIEU"], ["Le réseau d'assainissement refoule dans la rue","SERVICES URBAINS",2,2,0,"MANQUE_LIEU"], ["Des voleurs se sont échappés par la route nationale","POLICE",3,1,0,"MANQUE_LIEU"] ] print("⚙️ Analyse de couverture sémantique...") df_corrections = pd.DataFrame(corrections_manuelles, columns=['texte', 'domaine', 'severite', 'impact', 'cible', 'friction']) # Sauvegarde stricte dans l'espace d'audit os.makedirs("../audit", exist_ok=True) chemin_csv = "../audit/audit_corrections_expert.csv" df_corrections.to_csv(chemin_csv, index=False) print(f"✅ Fichier de corrections d'expert blindé : {chemin_csv}") print(f"📊 {len(df_corrections)} vecteurs critiques gravés dans le marbre mathématique.") print("👉 Prêt pour l'injection et la fusion lors de la phase de réentraînement.") if __name__ == "__main__": generer_corrections_audit()