Spaces:
Running
Running
File size: 6,751 Bytes
d2df0b9 9011070 d2df0b9 2b782d0 d2df0b9 9011070 d2df0b9 9011070 d2df0b9 2b782d0 d2df0b9 9011070 d2df0b9 9011070 d2df0b9 9011070 d2df0b9 9011070 d2df0b9 9011070 d2df0b9 9011070 d2df0b9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | # Vues HTML du rapport — chantier 3 post-Sprint 97
Le rapport HTML Picarones est composé de **5 vues principales** historiques
(navigables via la nav top) et de **3 nouvelles vues thématiques** (chantier 3)
qui s'affichent comme cartes dans la vue `analyses`.
Toutes les vues sont **adaptive** : une vue/section ne s'affiche que si elle
a du signal à montrer (au moins une sous-section avec données exploitables).
## Vues historiques (navigation principale)
| Vue | Template | Contenu |
|---|---|---|
| `ranking` | `view_ranking.html` | Classement moteurs (CER/WER médian/moyen, stratifié) |
| `gallery` | `view_gallery.html` | Galerie d'images du corpus |
| `document` | `view_document.html` | Vue détaillée par document (diff GT vs hyp) |
| `analyses` | `view_analyses.html` | Tableau de bord analytique (graphes Chart.js) |
| `characters` | `view_characters.html` | Analyse caractère par caractère (confusion) |
## Sous-sections de `view_analyses.html`
Cette vue agrège **tous les renderers spécialisés** sous forme de cartes
pleine largeur, avec un patron commun :
```jinja2
{% if some_html %}
<div class="chart-card" style="grid-column:1/-1">
{{ some_html }}
</div>
{% endif %}
```
Si `some_html` est `""` (adaptive masking parce qu'aucune donnée), la
carte n'apparaît pas.
### Sous-sections historiques (Sprints 5+10+39+42+55-60+86+87+89)
| Bloc | Origine | Données nécessaires |
|---|---|---|
| Distribution CER | Sprint 2 | toujours |
| Radar profil moteur | Sprint 2 | ≥ 1 moteur |
| CER par document | Sprint 2 | toujours |
| Temps d'exécution | Sprint 2 | durations propagées |
| Qualité image ↔ CER | Sprint 5 | `aggregated_image_quality` |
| Taxonomie | Sprint 5 | `aggregated_taxonomy` |
| Courbes de fiabilité | Sprint 7 | `aggregated_calibration` |
| NER (P/R/F1) | Sprint 41 | `aggregated_ner` (opt-in spaCy) |
| Calibration ECE/MCE | Sprint 43 | `aggregated_calibration` |
| Stratification | Sprint 46 | `script_type` par doc |
| Profil philologique | Sprint 62 | `aggregated_philological` |
| Recherchabilité fuzzy | Sprint 86 | `aggregated_searchability` |
| Séquences numériques | Sprint 86 | `aggregated_numerical_sequences` |
| Lisibilité (Δ Flesch) | Sprint 87 | `aggregated_readability` |
| Spécialisation inter-moteurs | Sprint 89 | ≥ 2 moteurs avec taxonomie |
| Analyse inter-moteurs | Sprint 37 | ≥ 2 moteurs |
| Matrice de corrélation | Sprint 7 | toujours |
### Sous-sections du chantier 3 (post-Sprint 97)
3 nouvelles vues thématiques composables qui regroupent les **16 renderers
orphelins** identifiés dans l'audit initial :
#### Vue « Coût et performance » (`build_economics_view_html`)
Module : [`picarones/reports/html/views/economics.py`](../picarones/reports/html/views/economics.py).
Activée si :
- `engine_reports` fournis avec durations non nulles.
- (Optionnel) `extra_html_blocks` pour cost projection / marginal cost.
Sous-sections :
- **Throughput effectif** : pages/h **utilisable** (intégrant 5 s/erreur
HTR-United), depuis `picarones.domain.throughput`.
#### Vue « Taxonomie avancée » (`build_advanced_taxonomy_view_html`)
Module : [`picarones/reports/html/views/advanced_taxonomy.py`](../picarones/reports/html/views/advanced_taxonomy.py).
Activée si ≥ 2 moteurs ont une `aggregated_taxonomy`.
Sous-sections :
- **Comparaison miroir** : leader CER vs runner-up, diagramme miroir
par classe d'erreur, tableau de récupérabilité éditoriale.
- **Co-occurrence de classes** (opt-in) : heatmap Jaccard inter-classes.
- **Distribution intra-document** (opt-in) : heatmap classe × position.
- **Modernisation lexicale** (opt-in) : top tokens GT modernisés.
#### Vue « Diagnostic approfondi » (`build_diagnostics_view_html`)
Module : [`picarones/reports/html/views/diagnostics.py`](../picarones/reports/html/views/diagnostics.py).
Activée si `detect_levers()` produit au moins un levier (typique sur
un bench standard) ou si données opt-in fournies.
Sous-sections :
- **Leviers d'amélioration** : factuels (jamais prescriptifs), depuis
`picarones.domain.levers`.
- **Comparaison historique** (opt-in) : encart « ce corpus est-il habituel ? ».
- **Profil d'image du corpus** (opt-in) : complexité paléographique +
homogénéité.
- **Évolution longitudinale** (opt-in) : table par moteur sur historique.
- **Stabilité multi-runs** (opt-in) : variance entre runs successifs.
- **Lignes les pires** (opt-in) : top 20 lignes avec le pire CER.
## Vues spécifiques (rapport autonome)
Deux vues du chantier 3 ne s'intègrent pas au rapport classique mais
servent à composer des **rapports autonomes** :
### Vue « Pipeline composée » (`build_pipeline_view_html`)
Module : [`picarones/reports/html/views/pipeline.py`](../picarones/reports/html/views/pipeline.py).
Utilisée par `picarones pipeline run` (ou par tout outil qui consomme un
`PipelineBenchmarkResult`). Sous-sections :
- **Résumé pipeline** (`build_pipeline_summary_html` + `build_pipeline_steps_table_html`).
- **DAG visuel** (`pipeline_dag_render.py` Sprint 95) — opt-in.
- **Absorption d'erreur** par jonction (`error_absorption_render.py`
Sprint 94) — opt-in.
- **Comparaison incrémentale** par slot (`incremental_comparison_render.py`
Sprint 96) — opt-in.
- **Audit des modules** contribués (`module_audit_render.py`
Sprint 97) — opt-in.
### Vue « Robustesse projetée » (`build_robustness_view_html`)
Module : [`picarones/reports/html/views/robustness.py`](../picarones/reports/html/views/robustness.py).
Utilisée par le workflow `picarones robustness`. Sous-sections :
- **Déficit projeté de robustesse** (`robustness_projection_render.py`
Sprint 88).
## Convention de rendu partagée
Toutes les 5 vues du chantier 3 utilisent le même shell `_render_view_shell()`
défini dans `economics.py` :
- Titre `<h3>` + note explicative en tête.
- Une `<details>` collapsible par sous-renderer.
- Premier `<details>` ouvert, les autres fermés (réduit le scroll initial).
- Anti-injection HTML systématique via `xml.sax.saxutils.escape`.
## Code source
- [`picarones/reports/html/generator.py`](../picarones/reports/html/generator.py)
— orchestrateur Jinja2 qui appelle les renderers et passe leurs sorties
au template.
- [`picarones/reports/html/views/`](../picarones/reports/html/views/) — 5 modules de
composition (chantier 3).
- [`picarones/reports/html/renderers/`](../picarones/reports/html/renderers/) — 26 renderers
atomiques.
- [`picarones/reports/html/templates/view_analyses.html`](../picarones/reports/html/templates/view_analyses.html)
— template Jinja2 qui inclut les blocs.
- [`tests/test_views.py`](../tests/test_views.py) — tests d'intégration
des 5 vues du chantier 3.
|