Files
roadwave/docs/regles-metier/14-moderation-flows.md
2026-01-31 11:45:11 +01:00

14 KiB
Raw Blame History

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 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€ (Firebase Cloud Messaging / APNs)
  • 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 pour le système complet de badges, récompenses et priorisation des signalements pertinents.


Section suivante : Section 19 - Modération Communautaire