feedbacks-scoring / CHANGELOG.md
Matis Codjia
Scoring app
1d8c2e0

Changelog - Version Production

Version 2.0.0 - Production Ready (2025-01-27)

🎉 Nouvelles fonctionnalités majeures

🔐 Sécurité et Authentification

  • Authentification par mot de passe : Accès sécurisé via APP_PASSWORD
  • Système de dispatch multi-annotateurs : Chaque annotateur ne voit que sa portion
  • Isolation des données : Traçabilité complète par annotateur
  • Module : backend/auth.py

👥 Gestion des Annotateurs

  • Configuration flexible : Fichier JSON ou secrets HF
  • Assignment automatique : Filtrage par start_idx / end_idx
  • Interface de sélection : Choix visuel de l'identifiant
  • Validation : Vérification de la cohérence de la config
  • Module : backend/annotator_config.py

☁️ Persistance Cloud

  • Sauvegarde HuggingFace : Stockage permanent sur dataset privé
  • Auto-restore : Chargement automatique au démarrage
  • Format horodaté : Fichiers JSON avec timestamp
  • Bouton explicite : Sauvegarde manuelle à tout moment
  • Module : backend/hf_storage.py

🔧 Modifications

Interface Utilisateur

  • Affichage de l'identité annotateur dans la sidebar
  • Indicateur de portion assignée (start-end)
  • Badge de statut sauvegarde cloud
  • Bouton "☁️ Sauvegarder sur HF" proéminent
  • Nom de fichier export personnalisé par annotateur

Backend

  • Filtrage automatique du dataset au chargement
  • Stockage du dataset complet + portion filtrée
  • Métadonnées enrichies (annotator_id, filtered, etc.)
  • Support secrets HF + variables d'environnement

Configuration

  • Nouveau fichier data/annotators.json
  • Exemple fourni : data/annotators.json.example
  • Secrets HF : APP_PASSWORD, HF_TOKEN, HF_DATASET_REPO
  • Fallback sur config par défaut si non configuré

📚 Documentation

Nouveaux fichiers

  • QUICKSTART.md : Guide de démarrage rapide (15 min)
  • CONFIGURATION.md : Documentation complète de configuration
  • CHANGELOG.md : Ce fichier

Mises à jour

  • README.md : Vue d'ensemble production, architecture, sécurité
  • requirements.txt : Ajout de huggingface_hub>=0.20.0
  • .gitignore : Ignorer secrets et données sensibles

🏗️ Architecture

Nouveaux modules

backend/
├── auth.py              # Authentification
├── annotator_config.py  # Configuration annotateurs
└── hf_storage.py        # Sauvegarde HuggingFace

data/
└── annotators.json.example  # Template configuration

Flux d'exécution

  1. Authentification : Vérification mot de passe
  2. Sélection : Choix de l'annotateur
  3. Filtrage : Dataset filtré automatiquement
  4. Annotation : Interface scoring
  5. Persistance : Sauvegarde locale + HF cloud

🔒 Sécurité

Protections ajoutées

  • ✅ Mot de passe obligatoire pour accès
  • ✅ Tokens jamais en clair dans le code
  • ✅ Dataset de stockage privé recommandé
  • ✅ Isolation des annotateurs
  • ✅ Traçabilité complète (qui a annoté quoi)

Bonnes pratiques

  • Secrets via HF Spaces (pas de commit)
  • Validation des configurations
  • Messages d'erreur explicites
  • Mode développement avec fallbacks

📊 Intégration FFGen

Workflow complet

  1. FFGen : create_annotation_study.py → Créer subsets + gold
  2. App : Distribuer et collecter annotations
  3. FFGen : analyze_agreement.py → Calculer accord
  4. FFGen : merge_scores.py → Dataset final

Compatibilité

  • Format identique aux scripts FFGen
  • Support des gold items pour IAA
  • Export JSONL directement utilisable
  • Métadonnées compatibles

🐛 Corrections

  • Fix : Sauvegarde perdue après redémarrage → Sauvegarde HF
  • Fix : Tous les annotateurs voient tout → Filtrage par portion
  • Fix : Pas de traçabilité → annotator_id dans toutes les sauvegardes
  • Fix : Accès public non sécurisé → Authentification obligatoire

⚠️ Breaking Changes

Configuration requise

  • Avant : Aucune config nécessaire
  • Après : Secrets HF obligatoires en production

Workflow

  • Avant : Un seul utilisateur, dataset complet
  • Après : Multi-utilisateurs, portions filtrées

Migration depuis v1.0

  1. Configurer les secrets HF (voir QUICKSTART.md)
  2. Créer data/annotators.json
  3. Pousser la nouvelle version
  4. Informer les annotateurs du nouveau workflow

📈 Métriques

Fichiers modifiés

  • 4 fichiers modifiés
  • 3 nouveaux modules backend
  • 3 nouveaux fichiers documentation
  • 1 fichier exemple configuration

Lignes de code

  • ~600 lignes ajoutées (backend)
  • ~200 lignes ajoutées (app.py)
  • ~800 lignes documentation

🚀 Déploiement

Prérequis

  1. Créer dataset HF privé pour stockage
  2. Créer token HF avec droits write
  3. Configurer secrets dans HF Space
  4. Créer configuration annotateurs

Commandes

git add .
git commit -m "Add authentication, dispatch and HF persistence"
git push origin main

Le Space rebuild automatiquement (3-5 min).

📖 Ressources

🙏 Remerciements

Cette version implémente les recommandations de sécurité et persistance pour un déploiement en production sur HuggingFace Spaces avec hébergement gratuit.

Inspiré par :

  • Le système de dispatch de FFGen (create_annotation_study.py)
  • Les bonnes pratiques HuggingFace Spaces
  • Les besoins réels d'études d'annotation multi-annotateurs

Versions précédentes

Version 1.0.0 - Version initiale

  • Interface de scoring basique
  • Sauvegarde locale uniquement
  • Un seul utilisateur
  • Pas d'authentification