- 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>
6.0 KiB
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:
- Dokumentenextraktion: PDFs und Bilder werden per OCR in Text umgewandelt
- Chunking: Lange Texte werden in Abschnitte aufgeteilt
- Chunk-Groesse: 1000 Zeichen
- Ueberlappung: 200 Zeichen
- Embedding: Jeder Chunk wird in einen Vektor umgewandelt
- Modell:
text-embedding-3-small - Dimensionen: 1536
- Modell:
- 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 |
Legal Corpus (/api/legal-corpus/)
| 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"