Spaces:
Sleeping
Sleeping
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
- Authentification : Vérification mot de passe
- Sélection : Choix de l'annotateur
- Filtrage : Dataset filtré automatiquement
- Annotation : Interface scoring
- 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
- FFGen :
create_annotation_study.py→ Créer subsets + gold - App : Distribuer et collecter annotations
- FFGen :
analyze_agreement.py→ Calculer accord - 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
- Configurer les secrets HF (voir QUICKSTART.md)
- Créer
data/annotators.json - Pousser la nouvelle version
- 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
- Créer dataset HF privé pour stockage
- Créer token HF avec droits write
- Configurer secrets dans HF Space
- 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
- Guide rapide : QUICKSTART.md - 15 minutes
- Documentation complète : CONFIGURATION.md
- Exemple config :
data/annotators.json.example
🙏 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