feat: Trainingsdaten-Statistik in der App anzeigen #352

Closed
opened 2026-05-19 23:16:22 +02:00 by admin-mrrm · 0 comments
Owner

Ziel

Der Nutzer soll sehen können, wie viele OCR-Trainingsdaten schon gesammelt wurden — als Indikator wann ein EasyOCR-Finetune Sinn ergibt.

Hintergrund

Die OCR-Pipeline schreibt nach jedem Scan automatisch ein Trainings-Session-Verzeichnis nach TRAINING_DATA_DIR (apps/ocr/app/ocr.py:_save_training_session). Korrigierte Crops aus dem Review-Screen landen ebenfalls dort via /ocr/save-training (apps/ocr/app/main.py:126). Bislang gibt es keinen Read-Pfad, der diese Daten zählt oder visualisiert.

Scope

OCR-Service

  • Neuer Endpoint GET /ocr/training-stats liefert:
    • total_sessions — Anzahl Session-Ordner unter TRAINING_DATA_DIR
    • total_lines — Summe aller Zeilen aus den labels.json
    • corrected_lines — Anzahl Zeilen mit gesetztem corrected-Feld (= manuell überprüft, primäres Trainingsmaterial)
    • last_session_at — Timestamp der jüngsten Session
    • oldest_session_at — Timestamp der ältesten Session

API (NestJS)

  • Proxy-Endpoint GET /lists/ocr/training-stats (oder ähnlicher Pfad), holt vom OCR-Service

UI (Web + Mobile)

  • In den Einstellungen ein neuer Bereich „OCR-Training" oder ein Hinweis-Banner in der Listen-Übersicht:
    • Große Zahl: „X korrigierte Zeilen gesammelt"
    • Kleiner Hinweis: Wann letzter Scan war
    • Optional: kleiner Fortschrittsbalken Richtung „Empfehlung ab Y Zeilen, dann lohnt sich Finetune" (Y = z.B. 200)
    • Visualisierung darf einfach bleiben — kein Chart-Library-Overkill

Out of scope

  • Tatsächlicher Finetune-Trigger oder -Workflow (separate Issue, sobald die Datenbasis steht)
  • Visualisierung einzelner Crops/Korrekturen (eigene Review-UI, falls später gewünscht)

Akzeptanzkriterien

  • OCR-Endpoint liefert die fünf Metriken; Unit-Test mit Mock-Trainings-Dir
  • API-Proxy mit auth-Guard
  • Web zeigt die Zahlen in den Einstellungen
  • Mobile zeigt die Zahlen in den Einstellungen
  • Wiki-Eintrag in App-Nutzen.md (Hinweis dass die App lernt)
## Ziel Der Nutzer soll sehen können, **wie viele OCR-Trainingsdaten** schon gesammelt wurden — als Indikator wann ein EasyOCR-Finetune Sinn ergibt. ## Hintergrund Die OCR-Pipeline schreibt nach jedem Scan automatisch ein Trainings-Session-Verzeichnis nach `TRAINING_DATA_DIR` (`apps/ocr/app/ocr.py:_save_training_session`). Korrigierte Crops aus dem Review-Screen landen ebenfalls dort via `/ocr/save-training` (`apps/ocr/app/main.py:126`). Bislang gibt es keinen Read-Pfad, der diese Daten zählt oder visualisiert. ## Scope ### OCR-Service - Neuer Endpoint `GET /ocr/training-stats` liefert: - `total_sessions` — Anzahl Session-Ordner unter `TRAINING_DATA_DIR` - `total_lines` — Summe aller Zeilen aus den `labels.json` - `corrected_lines` — Anzahl Zeilen mit gesetztem `corrected`-Feld (= manuell überprüft, primäres Trainingsmaterial) - `last_session_at` — Timestamp der jüngsten Session - `oldest_session_at` — Timestamp der ältesten Session ### API (NestJS) - Proxy-Endpoint `GET /lists/ocr/training-stats` (oder ähnlicher Pfad), holt vom OCR-Service ### UI (Web + Mobile) - In den Einstellungen ein neuer Bereich „OCR-Training" oder ein Hinweis-Banner in der Listen-Übersicht: - Große Zahl: „X korrigierte Zeilen gesammelt" - Kleiner Hinweis: Wann letzter Scan war - Optional: kleiner Fortschrittsbalken Richtung „Empfehlung ab Y Zeilen, dann lohnt sich Finetune" (Y = z.B. 200) - Visualisierung darf einfach bleiben — kein Chart-Library-Overkill ## Out of scope - Tatsächlicher Finetune-Trigger oder -Workflow (separate Issue, sobald die Datenbasis steht) - Visualisierung einzelner Crops/Korrekturen (eigene Review-UI, falls später gewünscht) ## Akzeptanzkriterien - [ ] OCR-Endpoint liefert die fünf Metriken; Unit-Test mit Mock-Trainings-Dir - [ ] API-Proxy mit auth-Guard - [ ] Web zeigt die Zahlen in den Einstellungen - [ ] Mobile zeigt die Zahlen in den Einstellungen - [ ] Wiki-Eintrag in App-Nutzen.md (Hinweis dass die App lernt)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#352
No description provided.