Spaces:
Sleeping
Sleeping
| """ | |
| Page d'aide détaillée | |
| """ | |
| import streamlit as st | |
| def render_help_page(): | |
| """Affiche la page d'aide complète""" | |
| st.title("Guide d'utilisation") | |
| st.markdown("Tout ce que vous devez savoir pour utiliser l'application de scoring de feedbacks") | |
| st.markdown("---") | |
| # Section 1: Introduction | |
| st.markdown("## Objectif de l'application") | |
| st.markdown(""" | |
| Cette application permet de **noter la qualité des feedbacks** générés pour des snippets de code. | |
| Vous allez évaluer si les feedbacks sont utiles, pertinents et bien formulés. | |
| **Échelle de notation : 0 à 5** | |
| - **0** : Pas utile / Incorrect | |
| - **1** : Très peu utile | |
| - **2** : Peu utile | |
| - **3** : Moyennement utile | |
| - **4** : Utile | |
| - **5** : Extrêmement utile | |
| """) | |
| st.markdown("---") | |
| # Section 2: Charger un dataset | |
| st.markdown("## Charger un dataset") | |
| col1, col2 = st.columns(2) | |
| with col1: | |
| st.markdown("### Option 1 : Fichier local") | |
| st.markdown(""" | |
| 1. Cliquez sur **"Choisissez une option: Fichier local (.jsonl)"** | |
| 2. Cliquez sur **"Browse files"** | |
| 3. Sélectionnez votre fichier `.jsonl` | |
| 4. Cliquez sur **"Charger le fichier"** | |
| **Format attendu du JSONL :** | |
| ```json | |
| {"anchor": "code...", "positive": "feedback..."} | |
| {"anchor": "code...", "positive": "feedback..."} | |
| ``` | |
| Chaque ligne doit contenir au minimum : | |
| - `anchor` ou `code` : le code source | |
| - `positive` : le feedback à évaluer | |
| """) | |
| with col2: | |
| st.markdown("### Option 2 : HuggingFace Hub") | |
| st.markdown(""" | |
| 1. Cliquez sur **"Choisissez une option: HuggingFace Hub"** | |
| 2. Entrez le nom du dataset (ex: `username/dataset-name`) | |
| 3. Choisissez le split (généralement `train`) | |
| 4. Cliquez sur **" Charger depuis HF"** | |
| **Exemples de datasets :** | |
| - `username/my-feedback-dataset` | |
| - `organization/code-feedbacks-v1` | |
| Le dataset doit être public ou vous devez être authentifié | |
| """) | |
| st.markdown("---") | |
| # Section 3: Navigation | |
| st.markdown("## Navigation entre les exemples") | |
| st.markdown(""" | |
| ### Boutons de navigation | |
| - **< Précédent** : Revenir à l'exemple précédent | |
| - **Suivant >** : Passer à l'exemple suivant | |
| - **Compteur central** : Affiche votre position (ex: "Exemple 5 / 100") | |
| ### Navigation rapide | |
| - **Aller au prochain non-scoré** : Saute directement au prochain exemple sans score | |
| - **Aller à l'exemple N** : Entrez un numéro et cliquez sur "Aller" pour y accéder directement | |
| **Astuce** : Utilisez les boutons Précédent/Suivant pour naviguer rapidement | |
| """) | |
| st.markdown("---") | |
| # Section 4: Scoring | |
| st.markdown("## Noter un feedback") | |
| st.markdown(""" | |
| ### 1. Lisez le code | |
| Le code source s'affiche en haut avec coloration syntaxique. | |
| ### 2. Lisez le feedback | |
| Le feedback à évaluer s'affiche dans un encadré vert. | |
| ### 3. Attribuez un score | |
| Déplacez le **slider de 0 à 5** selon votre évaluation : | |
| | Score | Signification | Quand l'utiliser | | |
| |-------|---------------|------------------| | |
| | **0** | Pas utile / Incorrect | Le feedback est faux, inutile ou hors sujet | | |
| | **1** | Très peu utile | Le feedback est vague ou très générique | | |
| | **2** | Peu utile | Le feedback manque de précision ou de profondeur | | |
| | **3** | Moyennement utile | Le feedback est correct mais sans détails | | |
| | **4** | Utile | Le feedback est pertinent et bien expliqué | | |
| | **5** | Extrêmement utile | Le feedback est excellent, précis et actionnable | | |
| ### 4. Ajoutez un commentaire (optionnel) | |
| Cliquez sur **"Ajouter un commentaire"** pour justifier votre score. | |
| Utile pour : | |
| - Expliquer un score particulier | |
| - Noter des détails spécifiques | |
| - Documenter votre raisonnement | |
| """) | |
| st.markdown("---") | |
| # Section 5: Progression | |
| st.markdown("## Suivre votre progression") | |
| st.markdown(""" | |
| ### Métriques en temps réel | |
| - **Total** : Nombre total d'exemples dans le dataset | |
| - **Scorés** : Nombre d'exemples que vous avez notés | |
| - **Restants** : Nombre d'exemples non scorés | |
| - **Progression** : Pourcentage d'avancement | |
| ### Barre de progression | |
| Une barre visuelle vous montre votre avancement global. | |
| ### Statistiques des scores | |
| Quand vous avez noté au moins un exemple, vous verrez : | |
| - **Score moyen** : Moyenne de tous vos scores | |
| - **Score le plus fréquent** : Le score que vous utilisez le plus | |
| - **Graphique de distribution** : Répartition de vos scores | |
| Ces statistiques vous aident à voir si vous êtes cohérent dans vos notations | |
| """) | |
| st.markdown("---") | |
| # Section 6: Export | |
| st.markdown("## Exporter vos scores") | |
| st.markdown(""" | |
| ### Quand exporter ? | |
| - À la fin de votre session de notation | |
| - Régulièrement pour sauvegarder votre travail | |
| - Quand vous voulez partager vos résultats | |
| ### Comment exporter ? | |
| 1. Scrollez jusqu'à la section **"Export"** | |
| 2. Vérifiez le nombre d'items à exporter | |
| 3. Cliquez sur **"Télécharger JSONL"** | |
| 4. Le fichier sera téléchargé : `feedback_scores.jsonl` | |
| ### Format du fichier exporté | |
| ```json | |
| { | |
| "code": "code source...", | |
| "feedback": "le feedback évalué...", | |
| "score": 4, | |
| "comment": "votre commentaire...", | |
| "original_index": 42 | |
| } | |
| ``` | |
| ### Aperçu de l'export | |
| Cliquez sur **"Aperçu Export (5 premiers)"** pour voir à quoi ressemblera votre fichier. | |
| **Important** : Les scores sont automatiquement enregistrés, mais téléchargez régulièrement votre fichier JSONL ! | |
| """) | |
| st.markdown("---") | |
| # Section 7: Actions avancées | |
| st.markdown("## Actions avancées") | |
| st.markdown(""" | |
| ### Réinitialiser tous les scores | |
| **Attention** : Cette action supprime TOUS vos scores ! | |
| 1. Cliquez sur **"Réinitialiser tous les scores"** | |
| 2. Un avertissement apparaît | |
| 3. Cliquez à nouveau pour confirmer | |
| Pensez à exporter avant de réinitialiser ! | |
| ### Modifier un score existant | |
| Vous pouvez revenir sur un exemple déjà noté et changer le score. | |
| Le nouveau score remplacera automatiquement l'ancien. | |
| """) | |
| st.markdown("---") | |
| # Section 8: Bonnes pratiques | |
| st.markdown("## ✅ Bonnes pratiques") | |
| col1, col2 = st.columns(2) | |
| with col1: | |
| st.markdown(""" | |
| ### Pour une notation cohérente | |
| - Lisez d'abord plusieurs exemples avant de commencer | |
| - Définissez vos critères de notation | |
| - Utilisez les commentaires pour les cas limites | |
| - Relisez régulièrement vos premiers scores | |
| - Vérifiez votre distribution de scores | |
| """) | |
| with col2: | |
| st.markdown(""" | |
| ### Pour éviter les erreurs | |
| - Exportez régulièrement (toutes les 50 notations) | |
| - N'utilisez pas "Réinitialiser" par erreur | |
| - Lisez bien le code ET le feedback | |
| - Faites des pauses régulières | |
| - En cas de doute, mettez 3 et commentez | |
| """) | |
| st.markdown("---") | |
| # Section 9: FAQ | |
| st.markdown("## Questions fréquentes") | |
| with st.expander("Mes scores sont-ils sauvegardés automatiquement ?"): | |
| st.markdown(""" | |
| **Oui !** Chaque score est enregistré dès que vous bougez le slider. | |
| Cependant, ils sont stockés temporairement dans l'application. | |
| **Pensez à télécharger votre fichier JSONL** régulièrement pour ne pas perdre votre travail. | |
| """) | |
| with st.expander("Puis-je fermer l'application et revenir plus tard ?"): | |
| st.markdown(""" | |
| **Attention** : Si vous fermez le navigateur ou redémarrez Docker, vos scores seront perdus. | |
| **Solution** : Téléchargez votre fichier JSONL avant de fermer, et rechargez-le à votre retour. | |
| """) | |
| with st.expander("Comment gérer les feedbacks ambigus ?"): | |
| st.markdown(""" | |
| Pour les feedbacks difficiles à évaluer : | |
| 1. Mettez un score **3** (moyennement utile) | |
| 2. Ajoutez un **commentaire** expliquant pourquoi c'est ambigu | |
| 3. Continuez et revenez-y plus tard si besoin | |
| """) | |
| with st.expander("Que faire si un feedback est partiellement correct ?"): | |
| st.markdown(""" | |
| Utilisez l'échelle graduée : | |
| - Partiellement incorrect → **1-2** | |
| - Partiellement utile → **2-3** | |
| - Majoritairement utile avec petits défauts → **3-4** | |
| Le score **3** est parfait pour "c'est correct mais sans plus". | |
| """) | |
| with st.expander("Le dataset ne se charge pas ?"): | |
| st.markdown(""" | |
| Vérifiez : | |
| - Le fichier est bien au format `.jsonl` | |
| - Chaque ligne contient `{"anchor": "...", "positive": "..."}` | |
| - Le fichier n'est pas corrompu | |
| - Pour HuggingFace : le dataset existe et est accessible | |
| """) | |
| with st.expander("Comment partager mes résultats ?"): | |
| st.markdown(""" | |
| 1. Téléchargez votre fichier JSONL | |
| 2. Envoyez-le par email, Slack, Drive, etc. | |
| 3. Le fichier contient tous vos scores et commentaires | |
| Le fichier est lisible et peut être rechargé dans l'application. | |
| """) | |
| st.markdown("---") | |
| # Section 10: Raccourcis | |
| st.markdown("## ⌨Raccourcis et astuces") | |
| st.markdown(""" | |
| ### Navigation rapide | |
| - Utilisez **Tab** pour naviguer entre les boutons | |
| - **Espace** ou **Entrée** pour cliquer sur un bouton | |
| - Cliquez directement sur le slider pour changer le score rapidement | |
| ### Workflow efficace | |
| 1. **Première passe** : Notez rapidement tous les exemples évidents | |
| 2. **Deuxième passe** : Revenez sur les cas ambigus avec "Aller au prochain non-scoré" | |
| 3. **Révision** : Vérifiez vos statistiques et ajustez si besoin | |
| 4. **Export** : Téléchargez votre travail | |
| ### Organisation | |
| - Notez par sessions de 20-50 exemples | |
| - Exportez à chaque fin de session | |
| - Nommez vos exports : `scores_session1.jsonl`, `scores_session2.jsonl` | |
| """) | |
| st.markdown("---") | |
| st.success("Vous êtes maintenant prêt à noter des feedbacks efficacement !") | |
| st.caption("Pour toute question, consultez cette page d'aide ou contactez matis.codjia@epita.fr") | |