## 14. Modération - Flows opérationnels ### 14.1 Signalement **Décision** : Formulaire simple avec 7 catégories prédéfinies #### 14.1.1 Catégories de signalement Liste déroulante avec 7 options : | Catégorie | Description | |-----------|-------------| | 🚫 **Haine & violence** | Incitation à la haine, discrimination, menaces | | 🔞 **Contenu sexuel** | Pornographie, contenu explicite | | ⚖️ **Illégalité** | Terrorisme, apologie de crimes | | 🎵 **Droits d'auteur** | Musique/contenu protégé non autorisé (voir [Section 18](../../content/rules/detection-contenu-protege.md) pour règles détaillées) | | 📧 **Spam** | Publicité non sollicitée, répétition | | ❌ **Fausse information** | Désinformation sur santé, sécurité routière | | 🔧 **Autre** | Champ texte obligatoire si sélectionné | **Justification** : - Équilibre entre simplicité (pas trop de choix) et précision (aide les modérateurs) - Coût : 0€ (liste déroulante standard) --- #### 14.1.2 Commentaire du signaleur **Décision** : Optionnel avec incitation - Champ texte libre (0-500 caractères) - Placeholder : "Décrivez le problème (optionnel mais recommandé)" - Non bloquant : le signalement peut être envoyé sans commentaire **Justification** : - Encourage la qualité des signalements sans créer de friction - Aide les modérateurs à comprendre le contexte - Pas de risque d'abandon du processus --- #### 14.1.3 Confirmation après signalement **Décision** : Toast in-app avec lien historique **Affichage** : - Toast notification : "✓ Signalement envoyé. Nous l'examinerons sous 24-48h." - Durée affichage : 5 secondes - Bouton optionnel "Voir mes signalements" (accès historique) **Historique personnel** : - Liste des signalements envoyés par l'utilisateur - Statut : En cours / Traité / Rejeté - Notification in-app si action prise (contenu retiré, signalement rejeté) **Justification** : - Transparence maximale - Coût : 0€ (aucun email automatique) - Bonne UX --- ### 14.2 Traitement des signalements #### 14.2.1 IA pré-filtre (transcription + analyse) **Décision** : OpenAI Whisper open source + NLP **Stack technique** : | Composant | Technologie | Hébergement | |-----------|-------------|-------------| | **Transcription** | Whisper large-v3 | Self-hosted (CPU MVP, GPU scale) | | **Analyse sentiment** | distilbert-base-uncased | Self-hosted | | **Détection haine** | facebook/roberta-hate-speech | Self-hosted | | **Mots-clés** | Liste noire FR/EN + regex | PostgreSQL | **Processus** : 1. Signalement reçu → ajout file d'attente asynchrone 2. Transcription audio (1-10 minutes selon durée) 3. Analyse automatique : - Score de confiance : 0-100% - Catégorie détectée - Timestamps des passages problématiques 4. Priorisation automatique selon score **Délais** : - Audio <5 min : 1-3 minutes - Audio 5-30 min : 3-10 minutes - Audio >30 min : 10-20 minutes **Coût** : - **MVP** : 0€ (CPU standard, processing asynchrone) - **Scale** : 50-200€/mois (GPU VPS si >1000 signalements/jour) **Justification** : - 100% open source, pas de dépendance GAFAM - Coût maîtrisé (scaling progressif) - Gain productivité modérateurs ×3-5 --- #### 14.2.2 Délais de traitement (SLA) **Décision** : SLA progressif selon priorité | Priorité | Délai cible | Traitement | |----------|-------------|------------| | **CRITIQUE** | <2h (24/7) | Violence, suicide, mise en danger → Astreinte modérateur senior | | **HAUTE** | <24h (jours ouvrés) | Haine, harcèlement, désinformation → Modérateur junior/senior | | **MOYENNE** | <24h (jours ouvrés) | Spam, contenu inapproprié → Modérateur junior | | **BASSE** | <72h (jours ouvrés) | Qualité audio, tags incorrects → Modérateur junior | **Traitement automatique** : - Score IA >95% + catégorie évidente (ex: spam répété) → Action automatique immédiate - Notification créateur + possibilité d'appel **Justification** : - Réaliste et conforme DSA (Digital Services Act) - Scalable : priorisation automatique - Ressources humaines optimisées --- #### 14.2.3 Priorisation automatique **Décision** : File d'attente intelligente basée sur score IA **Calcul de priorité** : ``` Priorité = (Score_IA × 0.7) + (Signalements_cumulés × 0.2) + (Fiabilité_signaleur × 0.1) ``` **Détails** : - **Score_IA** : 0-100% (confiance analyse automatique) - **Signalements_cumulés** : nombre de signalements du même contenu (boost priorité) - **Fiabilité_signaleur** : score utilisateur (historique signalements pertinents) **Classification résultante** : - Priorité ≥90 → **CRITIQUE** (traitement immédiat) - Priorité 70-89 → **HAUTE** (file prioritaire) - Priorité 40-69 → **MOYENNE** (file normale) - Priorité <40 → **BASSE** (file différée) **Justification** : - Optimise le temps des modérateurs - Traite les cas graves en priorité - Coût : 0€ (algorithme simple) --- ### 14.3 Sanctions #### 14.3.1 Notification au créateur **Décision** : Multi-canal (email + push + in-app) **Canaux utilisés** : | Canal | Timing | Contenu | |-------|--------|---------| | **Push notification** | Immédiat | Alerte courte : "Votre contenu a été modéré" | | **In-app** | Au prochain lancement | Popup détaillée avec bouton "Voir détails" | | **Email** | Dans l'heure | Notification complète avec lien vers formulaire d'appel | **Contenu email** : ``` Objet : Modération de votre contenu "[Titre du contenu]" Bonjour [Pseudo], Votre contenu "[Titre]" publié le [Date] a été modéré. Catégorie violée : [Catégorie] Raison : [Explication détaillée] Sanction : [Strike X / Suspension X jours / Suppression contenu] Extrait audio concerné : [Timestamp] Transcription : "[Passage problématique surligné]" Vous pouvez contester cette décision sous 7 jours : [Lien formulaire d'appel] L'équipe RoadWave ``` **Coût** : - Email : ~0.001€/notification (Brevo, Resend) - Push : 0€ (APNS / FCM natifs) - In-app : 0€ **Justification** : - Conformité DSA (transparence obligatoire) - Multi-canal garantit réception - Coût négligeable --- #### 14.3.2 Détail de la sanction **Décision** : Notification complète avec preuves **Éléments inclus obligatoirement** : 1. **Catégorie violée** : référence précise CGU (ex: "Article 3.2 - Haine & violence") 2. **Raison détaillée** : explication en langage clair (non juridique) 3. **Extrait audio** : timestamp exact du passage problématique (ex: "3:42-4:15") 4. **Transcription** : texte problématique surligné en rouge 5. **Gravité** : Strike actuel + conséquences (ex: "Strike 2/4 - Suspension 7 jours") 6. **Recours** : lien direct vers formulaire d'appel + délai (7 jours) **Exemple visuel in-app** : ``` ┌─────────────────────────────────────┐ │ ⚠️ Contenu modéré │ ├─────────────────────────────────────┤ │ Titre : "Mon podcast #42" │ │ Publié le : 15/01/2026 │ │ │ │ Catégorie violée : │ │ 🚫 Haine & violence (Article 3.2) │ │ │ │ Passage problématique : 3:42-4:15 │ │ "[Transcription surlignée]" │ │ │ │ Sanction : Strike 2/4 │ │ Suspension : 7 jours │ │ │ │ [Contester cette décision] │ └─────────────────────────────────────┘ ``` **Justification** : - Transparence maximale (obligation DSA) - Créateur comprend l'erreur → amélioration future - Réduit les appels non fondés --- #### 14.3.3 Processus d'appel **Décision** : Formulaire in-app structuré **Accès** : - Bouton "Contester cette décision" dans notification - Section "Mes sanctions" dans profil créateur **Formulaire d'appel** : | Champ | Type | Obligatoire | |-------|------|-------------| | **Sanction contestée** | Pré-rempli (non modifiable) | ✅ | | **Raison de l'appel** | Texte libre (50-1000 caractères) | ✅ | | **Arguments** | Zone texte enrichie | ✅ | | **Preuves** | Upload fichiers (max 5, 10 MB total) | ❌ | **Après soumission** : - Génération numéro de ticket unique (ex: `#MOD-2026-00142`) - Email confirmation : "Votre appel sera traité sous 72h" - Statut visible dans l'app : "En cours d'examen" **Délai de soumission** : - Maximum **7 jours** après notification de sanction - Après 7 jours : appel automatiquement refusé **Justification** : - Professionnel et traçable - Intégration complète avec système modération - Coût : 0€ (formulaire custom backend) --- #### 14.3.4 Délai de réponse pour appel **Décision** : SLA 72h garanti **Délais** : | Type d'appel | Délai | Responsable | |--------------|-------|-------------| | **Standard** | 72h max (3 jours ouvrés) | Modérateur senior | | **Complexe** | 5 jours ouvrés + notification intermédiaire J+3 | Modérateur senior + Admin modération | | **Critique** | 24h (cas suspension longue/ban) | Admin modération | **Notification intermédiaire** (si délai >72h) : - Email J+3 : "Votre appel #MOD-XXX est en cours d'examen approfondi. Réponse sous 2 jours." **Réponse finale** : Email détaillé avec : 1. **Décision** : Maintien / Annulation / Réduction de sanction 2. **Justification** : explication de la décision d'appel 3. **Actions** : Strike retiré / Suspension annulée / Contenu rétabli (si applicable) 4. **Définitif** : mention "Cette décision est définitive" (pas de second appel) **Suivi in-app** : - Mise à jour statut : "Appel accepté ✓" ou "Appel rejeté ✗" - Badge notification **Justification** : - Équilibre entre rapidité et qualité de traitement - Conforme pratiques industrie (YouTube, TikTok : 5-7 jours) - Ressources humaines réalistes --- ### 14.4 Outils modérateurs **Stack technique complète** : | Outil | Technologie | Fonction | |-------|-------------|----------| | **Dashboard** | React + TanStack Table | Interface modération | | **File signalements** | PostgreSQL + Redis | Priorisation temps réel | | **Player audio** | Wavesurfer.js | Lecture avec waveform + annotations | | **Transcription** | Whisper large-v3 | Conversion audio → texte | | **Historique créateur** | Vue 360° | Contenus, strikes, appels, métriques | | **Actions rapides** | Shortcuts clavier | Approuver (A), Rejeter (R), Escalade (E) | | **Logs audit** | PostgreSQL + export | Traçabilité complète (DSA) | | **Collaboration** | Système de commentaires | Modérateurs peuvent s'entraider sur cas complexes | **Fonctionnalités clés** : 1. **Lecture accélérée** : 0.75x à 2x (gain productivité) 2. **Marqueurs temporels** : annotation directe sur waveform 3. **Historique créateur** : vue rapide contenus précédents + strikes 4. **Statistiques** : signalements traités/jour, temps moyen, précision 5. **Fil d'activité** : actions récentes équipe (temps réel) **Coût infrastructure** : - MVP : 0-50€/mois (serveur CPU) - Scale : 50-200€/mois (GPU + Redis Cluster) --- ### 14.5 Modération préventive (rappel) **Nouveaux créateurs** : - Validation manuelle des **3 premiers contenus** - Délai : 24-48h (jours ouvrés) - Transcription automatique pour aide modérateur **Score de confiance** : - Évolution dynamique selon historique - Créateur fiable (0 strike depuis 6 mois) → validation automatique - Créateur suspect (strikes récents) → validation manuelle systématique **Publicités** : - Validation manuelle obligatoire 24-48h (responsabilité juridique) - Transcription + analyse métadonnées (ciblage, durée, volume) **Justification** : - Prévention > réaction (économie modération) - Qualité plateforme préservée dès le début --- ## Récapitulatif Section 14 | Point | Décision | Coût | |-------|----------|------| | **Catégories signalement** | 7 catégories prédéfinies + champ libre | 0€ | | **Commentaire signaleur** | Optionnel avec incitation | 0€ | | **Confirmation** | Toast in-app + historique personnel | 0€ | | **IA pré-filtre** | Whisper (CPU MVP, GPU scale) + NLP open source | 0-200€/mois | | **Délais traitement** | SLA progressif : 2h/24h/72h selon priorité | Dépend équipe | | **Priorisation** | File intelligente basée score IA | 0€ | | **Notification sanction** | Email + push + in-app (multi-canal) | ~0.001€/notif | | **Détail sanction** | Complet : raison + extrait + transcription | 0€ | | **Processus appel** | Formulaire in-app structuré | 0€ | | **Délai appel** | 72h garanti (standard) | Dépend équipe | | **Outils modérateurs** | Dashboard React + Whisper + Wavesurfer.js | 0-200€/mois | **Coût total MVP** : **0-200€/mois** (infrastructure IA optionnelle) **Conformité** : - ✅ DSA (Digital Services Act) : transparence, traçabilité, délais - ✅ RGPD : données modération anonymisées après 3 ans - ✅ Logs audit : toutes actions tracées (obligation légale plateforme) **Scalabilité** : - 0-1000 signalements/mois : équipe 1-2 modérateurs junior + 1 senior - 1000-10K signalements/mois : équipe 5-10 modérateurs + IA GPU - 10K+ signalements/mois : équipe dédiée + IA optimisée + modération communautaire --- **🎯 Modération communautaire** : Voir [Section 19](moderation-communautaire.md) pour le système complet de badges, récompenses et priorisation des signalements pertinents. --- **Section suivante** : [Section 19 - Modération Communautaire](moderation-communautaire.md)