fix: Restore all files lost during destructive rebase

A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.

This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).

Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-02-09 09:51:32 +01:00
parent f7487ee240
commit bfdaf63ba9
2009 changed files with 749983 additions and 1731 deletions

View File

@@ -0,0 +1,49 @@
version: '3.8'
# BreakPilot LibreChat Frontend
# Startet LibreChat mit Custom Endpoint für vast.ai Mistral-7B
services:
# LibreChat - Chat Frontend
librechat:
image: ghcr.io/danny-avila/librechat-dev:latest
container_name: breakpilot-chat
ports:
- "3080:3080"
depends_on:
- mongodb
- meilisearch
restart: unless-stopped
env_file:
- .env
volumes:
- ./librechat.yaml:/app/librechat.yaml:ro
- ./images:/app/client/public/images
- librechat_logs:/app/api/logs
extra_hosts:
- "host.docker.internal:host-gateway"
# MongoDB - LibreChat Datenbank
mongodb:
image: mongo:7.0
container_name: breakpilot-mongo
restart: unless-stopped
volumes:
- mongodb_data:/data/db
command: mongod --noauth
# Meilisearch - Volltextsuche für Conversations
meilisearch:
image: getmeili/meilisearch:v1.7
container_name: breakpilot-search
restart: unless-stopped
environment:
- MEILI_NO_ANALYTICS=true
- MEILI_ENV=development
volumes:
- meilisearch_data:/meili_data
volumes:
mongodb_data:
meilisearch_data:
librechat_logs:

229
librechat/librechat.yaml Normal file
View File

@@ -0,0 +1,229 @@
# BreakPilot LibreChat Konfiguration
# Custom Endpoints für vast.ai Mistral-7B und lokales Ollama
version: 1.1.5
cache: true
# =============================================================================
# Custom Endpoints (eigene LLMs)
# =============================================================================
endpoints:
# vast.ai Mistral-7B (Production)
custom:
- name: "BreakPilot Teacher"
apiKey: "${VLLM_API_KEY}"
baseURL: "http://194.228.55.129:33548/v1"
models:
default: ["mistralai/Mistral-7B-Instruct-v0.3"]
fetch: true
titleConvo: true
titleModel: "mistralai/Mistral-7B-Instruct-v0.3"
summarize: false
summaryModel: "mistralai/Mistral-7B-Instruct-v0.3"
forcePrompt: false
modelDisplayLabel: "BreakPilot Teacher"
iconURL: "/images/breakpilot-icon.png"
greeting: |
Willkommen bei BreakPilot Teacher!
Ich bin dein Assistent für den Schulalltag. Ich kann dir helfen bei:
- Elternkommunikation
- Feedback für Schüler
- Differenzierung von Aufgaben
- Unterrichtsplanung
Wie kann ich dir heute helfen?
# Lokales Ollama (Development/Fallback)
- name: "Lokales Ollama"
apiKey: "ollama"
baseURL: "http://host.docker.internal:11434/v1"
models:
default: ["llama3.2:3b"]
fetch: true
titleConvo: true
titleModel: "llama3.2:3b"
modelDisplayLabel: "Ollama Lokal"
# =============================================================================
# Playbooks (System Prompts)
# =============================================================================
# Presets für verschiedene Lehrer-Aufgaben
presets:
- name: "Eltern-Email"
description: "Professionelle E-Mails an Eltern formulieren"
icon: "Mail"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du unterstützt speziell bei der Elternkommunikation:
- E-Mails an Eltern
- Einladungen zu Gesprächen
- Rückmeldungen zum Lernstand
- Konfliktlösung
Stil: Professionell, wertschätzend, klar, lösungsorientiert.
Verwende professionelle, respektvolle Sprache.
Berücksichtige pädagogische Grundsätze.
Beachte deutsche Schulgesetze und Datenschutz.
- name: "Schüler-Feedback"
description: "Konstruktives Feedback für Schülerarbeiten"
icon: "GraduationCap"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du hilfst bei Feedback für Schüler:
- Kommentare zu Klassenarbeiten
- Lernentwicklungsberichte
- Verhaltensrückmeldungen
- Motivierende Hinweise
Prinzipien:
- Stärkenorientiert
- Konkret und konstruktiv
- Altersangemessen
- Ermutigend, aber ehrlich
- name: "Aufgaben Differenzieren"
description: "Aufgaben für verschiedene Niveaus anpassen"
icon: "Layers"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du hilfst bei der Differenzierung von Unterrichtsmaterial:
- Aufgaben vereinfachen oder anspruchsvoller gestalten
- Verschiedene Lernzugänge anbieten
- Materialien für unterschiedliche Leistungsniveaus
- Inklusive Anpassungen
Berücksichtige:
- Verschiedene Lerntypen
- Förderbedarf
- Hochbegabung
- Sprachliche Heterogenität
Erstelle immer drei Niveaustufen:
1. Basisniveau (für Schüler mit Förderbedarf)
2. Mittleres Niveau (Regelanforderung)
3. Erweitertes Niveau (für leistungsstarke Schüler)
- name: "Klausurkorrektur"
description: "Unterstützung bei der Klausurbewertung"
icon: "ClipboardCheck"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du unterstützt bei der Klausurkorrektur:
- Bewertungskriterien formulieren
- Erwartungshorizonte erstellen
- Punkteverteilung vorschlagen
- Feedback-Kommentare generieren
Prinzipien:
- Transparente Bewertungskriterien
- Kompetenzorientierung
- Konstruktives Feedback
- Rechtssichere Formulierungen
- name: "Unterrichtsplanung"
description: "Hilfe bei der Unterrichtsvorbereitung"
icon: "Calendar"
default: false
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du hilfst bei der Unterrichtsplanung:
- Stundenentwürfe erstellen
- Lernziele formulieren
- Methodenauswahl
- Materialsammlung
- Zeitplanung
Orientiere dich an:
- Kompetenzorientierung
- Schüleraktivierung
- Differenzierung
- Medieneinsatz
- name: "Allgemein"
description: "Allgemeiner Schulassistent"
icon: "School"
default: true
endpoint: "custom"
model: "mistralai/Mistral-7B-Instruct-v0.3"
modelLabel: "BreakPilot Teacher"
promptPrefix: |
Du bist ein hilfreicher Assistent für Lehrkräfte an deutschen Schulen.
Du unterstützt bei:
- Kommunikation mit Eltern
- Feedback-Formulierungen für Schüler
- Unterrichtsplanung und Differenzierung
- Administrativen Aufgaben
Wichtig:
- Verwende professionelle, respektvolle Sprache
- Berücksichtige pädagogische Grundsätze
- Beachte deutsche Schulgesetze und Datenschutz
- Formuliere konstruktiv und lösungsorientiert
# =============================================================================
# Interface-Einstellungen
# =============================================================================
interface:
# Menü-Optionen
privacyPolicy:
externalUrl: "https://breakpilot.de/datenschutz"
openNewTab: true
termsOfService:
externalUrl: "https://breakpilot.de/nutzungsbedingungen"
openNewTab: true
# Sidebar-Layout
endpointsMenu: true
modelSelect: true
parameters: true
sidePanel: true
presets: true
# =============================================================================
# Registrierung & Auth
# =============================================================================
registration:
socialLogins: []
allowedDomains: []
# =============================================================================
# Ratenkontrolle
# =============================================================================
rateLimits:
fileUploads:
ipMax: 100
ipWindowInMinutes: 60
userMax: 50
userWindowInMinutes: 60
conversationsImport:
ipMax: 100
ipWindowInMinutes: 60
userMax: 50
userWindowInMinutes: 60