FlashMath
FlashMath ist eine spaced-repetition Lern-App für universitäre Mathematik. Sie verbindet FSRS-6-Scheduling mit drei getrennten KI-Rollen und einem langlebigen Begleit-Agenten, dem Coach.
Auf dieser Seite
Was sie kann
FlashMath mit LaTeX (MathJax, auch AsciiMath), geteiltes Studien-Fenster mit CodeMirror-Editor inkl. Vim-Modus, ziehbarem Splitter, Stapeln, Tag-Filtern, Statistiken und kompletter Review-Historie je Karte.
Scheduling (FSRS 6)
Die Wiederholungslogik läuft über py-fsrs und ist in app/scheduler.py gekapselt. Das Rating (1-4) ist immer deine finale Entscheidung; die KI liefert nur eine Empfehlung. 'Gelernt' gilt ab einer FSRS-Stabilität von 21 Tagen. Die KI ändert nie das Scheduling.
Drei getrennte KI-Rollen
Grader (pro Antwort, strenges JSON-Urteil plus Fehleranalyse), Tutor (pro Karte, sokratisch, streamend) und Coach (übergreifende Diagnose). Der Tutor lehrt, der Coach diagnostiziert — sie ersetzen sich nicht gegenseitig.
Tutor
Pro Karte, sokratisch, streamend.
Grader
Pro Antwort, JSON-Urteil und Fehleranalyse.
Coach
Übergreifend, diagnostiziert und verschreibt.
Coach-Architektur (intern Hermes)
Der Coach ist ein app-freies Paket (hermes/): ein streamender Tool-Calling-Loop direkt über OpenRouter mit schlichtem httpx (kein SDK), langlebige Threads, Bild-Eingabe. Harte Guard-Rails, per Tests erzwungen: Paket-Importgrenze, die HermesAccess-Methoden-Allowlist, Verträge mit extra='forbid', und in Produktion eine DB-Rolle ohne Schreibrechte auf Karten-/FSRS-Tabellen. Der Coach darf neue Übungskarten vorschlagen, ändert aber niemals bestehende Karten, Tags, Bewertungen oder das FSRS-Scheduling. Seit dem Umbau läuft nichts hinter deinem Rücken — Diagnose, Sonden und Uebungs-Vorschlaege passieren, wenn du sie forderst.
Der Coach darf neue Übungskarten vorschlagen — bestehende Karten, Tags, Bewertungen und FSRS-Scheduling ändert er nie.
Gedächtnis (mem0)
Das Langzeit-Gedächtnis nutzt mem0, vollständig lokal: ONNX-Embeddings via fastembed (ohne torch), ein eingebetteter Qdrant-Vektorspeicher auf deiner eigenen Platte. Nur die Fakt-Extraktion nutzt dasselbe Modell, das du ohnehin verwendest. Jeder Eintrag traegt Kategorie, Konfidenz und Quelle und ist einzeln erklärbar und löschbar im Memory-Drawer.
Privatsphäre & Limiten
Jede Tabelle ist nutzerbezogen; Cross-User-Zugriff ist auf 404 getestet. E-Mail+Passwort mit argon2 und serverseitigen Sessions (SHA-256-gehasht, 30 Tage gleitend). E-Mail-Verifizierung vor KI-Funktionen. CSRF via Origin-Referer plus SameSite=Lax. Monatlische Free-Tier-Quoten je Rolle. Jeder KI-Aufruf wird in usage_events protokolliert. Der Plattform-API-Key ist nur Betreiber-Sache und für Nutzer nie sichtbar.
Was wir tun
Nutzerbezogene Tabellen, argon2-Passwörter, serverseitige Sessions, Origin-CSRF, monatl. Quoten, metered KI-Aufrufe.
Was wir nicht tun
Kein Cross-User-Zugriff, kein Plattform-Key für Nutzer, kein nächtliches Agieren hinter deinem Rücken.
Free-Tier-Quoten (monatlich)
Tech-Stack
FastAPI, Jinja2, SQLAlchemy 2.0, Alembic, SQLite (dev) bzw. PostgreSQL 16 + Caddy auto-TLS via Docker Compose (prod), pytest mit Protocol-Fakes ohne Netzwerkaufrufe.
Sprache
Die App laesst sich zwischen Deutsch und Englisch umschalten (Einstellungen-Menue). Hinweis: KI-Text, der vor einer Umstellung erzeugt wurde, behaelt seine ursprüngliche Sprache.
Bereit zum Lernen?
Konto erstellen