Files
breakpilot-lehrer/docs-src/services/ki-daten-pipeline/index.md
Benjamin Boenisch e22019b2d5 Add CLAUDE.md, MkDocs docs, .claude/rules
- CLAUDE.md: Comprehensive documentation for Lehrer KI platform
- docs-src: Klausur, Voice, Agent-Core, KI-Pipeline docs
- mkdocs.yml: Lehrer-specific nav with blue theme
- docker-compose: Added docs service (port 8010, profile: docs)
- .claude/rules: testing, docs, open-source, abiturkorrektur, vocab-worksheet, multi-agent, experimental-dashboard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:49:25 +01:00

6.0 KiB

KI-Daten-Pipeline

Die KI-Daten-Pipeline ist ein zusammenhaengendes System aus drei Modulen, das den Datenfluss von der Erfassung bis zur semantischen Suche abbildet.

Uebersicht

flowchart LR
    subgraph OCR["OCR-Labeling"]
        A[Klausur-Scans] --> B[OCR Erkennung]
        B --> C[Ground Truth Labels]
    end

    subgraph RAG["RAG Pipeline"]
        D[PDF Dokumente] --> E[Text-Extraktion]
        E --> F[Chunking]
        F --> G[Embedding]
    end

    subgraph SEARCH["Daten & RAG"]
        H[Qdrant Collections]
        I[Semantische Suche]
    end

    C -->|Export| D
    G -->|Indexierung| H
    H --> I
    I -->|Ergebnisse| J[Klausur-Korrektur]

Module

Modul Pfad Funktion Backend
OCR-Labeling /ai/ocr-labeling Ground Truth fuer Handschrift-OCR klausur-service:8086
RAG Pipeline /ai/rag-pipeline Dokument-Indexierung klausur-service:8086
Daten & RAG /ai/rag Vektor-Suche & Collection-Mapping klausur-service:8086

Datenfluss

1. OCR-Labeling (Eingabe)

Das OCR-Labeling-Modul erfasst Ground Truth Daten fuer das Training von Handschrift-Erkennungsmodellen:

  • Upload: Klausur-Scans (PDF/Bilder) werden hochgeladen
  • OCR-Verarbeitung: Mehrere OCR-Modelle erkennen den Text
    • llama3.2-vision:11b - Vision LLM (beste Qualitaet)
    • trocr - Microsoft Transformer (schnell)
    • paddleocr - PaddleOCR + LLM (4x schneller)
    • donut - Document Understanding (strukturiert)
  • Labeling: Manuelles Pruefen und Korrigieren der OCR-Ergebnisse
  • Export: Gelabelte Daten koennen exportiert werden fuer:
    • TrOCR Fine-Tuning
    • Llama Vision Fine-Tuning
    • Generic JSON

2. RAG Pipeline (Verarbeitung)

Die RAG Pipeline verarbeitet Dokumente und macht sie suchbar:

flowchart TD
    A[Datenquellen] --> B[OCR/Text-Extraktion]
    B --> C[Chunking]
    C --> D[Embedding]
    D --> E[Qdrant Indexierung]

    subgraph sources["Datenquellen"]
        S1[NiBiS PDFs]
        S2[Eigene EH]
        S3[Rechtskorpus]
        S4[Schulordnungen]
    end

Verarbeitungsschritte:

  1. Dokumentenextraktion: PDFs und Bilder werden per OCR in Text umgewandelt
  2. Chunking: Lange Texte werden in Abschnitte aufgeteilt
    • Chunk-Groesse: 1000 Zeichen
    • Ueberlappung: 200 Zeichen
  3. Embedding: Jeder Chunk wird in einen Vektor umgewandelt
    • Modell: text-embedding-3-small
    • Dimensionen: 1536
  4. Indexierung: Vektoren werden in Qdrant gespeichert

3. Daten & RAG (Ausgabe)

Das Daten & RAG Modul ermoeglicht die Verwaltung und Suche:

  • Collection-Uebersicht: Status aller Qdrant Collections
  • Semantische Suche: Fragen werden in Vektoren umgewandelt und aehnliche Dokumente gefunden
  • Regulierungs-Mapping: Zeigt welche Regulierungen indexiert sind

Qdrant Collections

Collection Inhalt Status
bp_nibis_eh Offizielle NiBiS Erwartungshorizonte Aktiv
bp_eh Benutzerdefinierte Erwartungshorizonte Aktiv
bp_schulordnungen Schulordnungen aller Bundeslaender In Arbeit
bp_legal_corpus Rechtskorpus (DSGVO, AI Act, BSI, etc.) Aktiv

Technische Architektur

Services

graph TB
    subgraph Frontend["Admin-v2 (Next.js)"]
        F1["/ai/ocr-labeling"]
        F2["/ai/rag-pipeline"]
        F3["/ai/rag"]
    end

    subgraph Backend["klausur-service (Python)"]
        B1[OCR Endpoints]
        B2[Indexierungs-Jobs]
        B3[Such-API]
    end

    subgraph Storage["Datenbanken"]
        D1[(PostgreSQL)]
        D2[(Qdrant)]
        D3[(MinIO)]
    end

    F1 --> B1
    F2 --> B2
    F3 --> B3

    B1 --> D1
    B1 --> D3
    B2 --> D2
    B3 --> D2

Backend-Endpunkte

OCR-Labeling (/api/v1/ocr-label/)

Endpoint Methode Beschreibung
/sessions GET/POST Session-Verwaltung
/sessions/{id}/upload POST Bilder hochladen
/queue GET Labeling-Queue
/confirm POST OCR bestaetigen
/correct POST OCR korrigieren
/skip POST Item ueberspringen
/stats GET Statistiken
/export POST Trainingsdaten exportieren

RAG Pipeline (/api/ai/rag-pipeline)

Action Beschreibung
jobs Indexierungs-Jobs auflisten
dataset-stats Datensatz-Statistiken
create-job Neue Indexierung starten
pause Job pausieren
resume Job fortsetzen
cancel Job abbrechen
Endpoint Beschreibung
/status Collection-Status
/search Semantische Suche
/ingest Dokumente indexieren

Integration mit Klausur-Korrektur

Die KI-Daten-Pipeline liefert Erwartungshorizont-Vorschlaege fuer die Klausur-Korrektur:

sequenceDiagram
    participant L as Lehrer
    participant K as Klausur-Korrektur
    participant R as RAG-Suche
    participant Q as Qdrant

    L->>K: Schueler-Antwort pruefen
    K->>R: EH-Vorschlaege laden
    R->>Q: Semantische Suche
    Q->>R: Top-k Chunks
    R->>K: Relevante EH-Passagen
    K->>L: Bewertungsvorschlaege

Deployment

Die Module werden als Teil des admin-v2 Containers deployed:

# 1. Sync
rsync -avz --delete --exclude 'node_modules' --exclude '.next' --exclude '.git' \
  /Users/benjaminadmin/Projekte/breakpilot-pwa/admin-v2/ \
  macmini:/Users/benjaminadmin/Projekte/breakpilot-pwa/admin-v2/

# 2. Build & Deploy
ssh macmini "/usr/local/bin/docker compose \
  -f /Users/benjaminadmin/Projekte/breakpilot-pwa/docker-compose.yml \
  build --no-cache admin-v2 && \
  /usr/local/bin/docker compose \
  -f /Users/benjaminadmin/Projekte/breakpilot-pwa/docker-compose.yml \
  up -d admin-v2"

Verwandte Dokumentation