feedbacks-scoring / README.md
Matis Codjia
Scoring app
1d8c2e0
metadata
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 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

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

{
  "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

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

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 :

  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

Licence

Ce projet est open source.