Spaces:
Sleeping
Sleeping
| title: Feedback Scoring App | |
| emoji: 🔐 | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: docker | |
| app_port: 7860 | |
| tags: | |
| - streamlit | |
| - annotation | |
| - feedback | |
| - secure | |
| pinned: false | |
| short_description: Secure code feedback annotation with multi-annotator support | |
| # Feedback Scoring Tool - Production Version | |
| Application Streamlit sécurisée pour l'annotation et le scoring de feedbacks de code par plusieurs annotateurs. Version prête pour le déploiement en production avec authentification, dispatch et persistance cloud. | |
| ## Fonctionnalités | |
| ### Annotation | |
| - 📊 **Interface de scoring intuitive** : Notation de 1 à 5 pour chaque feedback | |
| - 📈 **Statistiques en temps réel** : Suivi de votre progression et distribution des scores | |
| - 💬 **Commentaires** : Ajoutez des notes sur chaque annotation | |
| - 📥 **Import flexible** : Support des fichiers JSONL locaux et datasets HuggingFace | |
| ### Sécurité et Collaboration | |
| - 🔐 **Authentification** : Accès protégé par mot de passe | |
| - 👥 **Multi-annotateurs** : Système de dispatch automatique par portion | |
| - 🎯 **Isolation** : Chaque annotateur ne voit que sa portion du dataset | |
| - 📋 **Traçabilité** : Toutes les annotations sont identifiées par annotateur | |
| ### Persistance | |
| - ☁️ **Sauvegarde cloud** : Stockage permanent sur HuggingFace Dataset privé | |
| - 💾 **Auto-sauvegarde** : Progression sauvegardée automatiquement en local | |
| - 🔄 **Reprise de session** : Continuez où vous en étiez, même après redémarrage | |
| - 📤 **Export JSONL** : Téléchargez vos annotations à tout moment | |
| ## Configuration pour Production | |
| Cette application nécessite une configuration avant déploiement. Voir **[CONFIGURATION.md](CONFIGURATION.md)** pour le guide complet. | |
| ### Configuration rapide | |
| 1. **Créer un dataset HF privé** pour stocker les annotations | |
| 2. **Configurer les secrets** dans Settings du Space : | |
| - `APP_PASSWORD` : Mot de passe d'accès | |
| - `HF_TOKEN` : Token avec droits d'écriture | |
| - `HF_DATASET_REPO` : Nom du dataset de stockage | |
| 3. **Configurer les annotateurs** dans `data/annotators.json` | |
| 4. **Pousser sur HF Spaces** | |
| 📖 **Documentation complète** : [CONFIGURATION.md](CONFIGURATION.md) | |
| ## Utilisation (Annotateurs) | |
| ### Workflow | |
| 1. **Connexion** : Entrez le mot de passe fourni | |
| 2. **Identification** : Sélectionnez votre identifiant | |
| 3. **Chargement** : L'app charge automatiquement votre portion | |
| 4. **Annotation** : Scorez les feedbacks (1-5) avec commentaires | |
| 5. **Sauvegarde** : Cliquez sur "☁️ Sauvegarder sur HF" régulièrement | |
| 6. **Reprise** : Vous pouvez fermer et reprendre plus tard | |
| ### Format du dataset | |
| ```json | |
| { | |
| "anchor": "code source", | |
| "positive": "feedback positif", | |
| "language": "python" | |
| } | |
| ``` | |
| ## Architecture | |
| ``` | |
| backend/ | |
| ├── auth.py # Authentification | |
| ├── annotator_config.py # Configuration annotateurs | |
| ├── hf_storage.py # Sauvegarde HuggingFace | |
| ├── data_loader.py # Chargement datasets | |
| ├── persistence.py # Sauvegarde locale | |
| ├── export.py # Export JSONL | |
| └── statistics.py # Métriques | |
| frontend/ | |
| ├── components.py # Composants UI | |
| ├── styles.py # Styles CSS | |
| └── help_page.py # Page d'aide | |
| data/ | |
| ├── annotators.json # Config annotateurs | |
| └── [sessions locales] # Sauvegardes temporaires | |
| ``` | |
| ## Développement | |
| ### Local | |
| ```bash | |
| pip install -r requirements.txt | |
| # Définir les variables d'environnement | |
| export APP_PASSWORD="dev" | |
| export HF_TOKEN="hf_xxxxx" | |
| export HF_DATASET_REPO="username/annotations" | |
| streamlit run app.py | |
| ``` | |
| ### Docker | |
| ```bash | |
| docker build -t feedback-scoring-app . | |
| docker run -p 7860:7860 \ | |
| -e APP_PASSWORD="dev" \ | |
| -e HF_TOKEN="hf_xxxxx" \ | |
| -e HF_DATASET_REPO="username/annotations" \ | |
| feedback-scoring-app | |
| ``` | |
| ## Intégration avec FFGen | |
| Cette application s'intègre avec le pipeline [FFGen](https://github.com/YOUR_USERNAME/FFGen) : | |
| 1. **Préparation** : Utilisez `create_annotation_study.py` pour créer les subsets | |
| 2. **Annotation** : Utilisez cette app pour distribuer et collecter les scores | |
| 3. **Analyse** : Utilisez `analyze_agreement.py` pour calculer l'accord | |
| 4. **Fusion** : Utilisez `merge_scores.py` pour créer le dataset final | |
| ## Sécurité | |
| - ✅ Authentification par mot de passe | |
| - ✅ Dataset de stockage privé | |
| - ✅ Isolation des annotateurs | |
| - ✅ Traçabilité complète | |
| - ✅ Pas de données sensibles en clair dans le code | |
| ## Support | |
| - 📖 Documentation : [CONFIGURATION.md](CONFIGURATION.md) | |
| - 🐛 Issues : [GitHub Issues](https://github.com/YOUR_USERNAME/feedbacks-scoring-app/issues) | |
| - 📧 Contact : your.email@example.com | |
| ## Licence | |
| Ce projet est open source. | |