Files
AlgebraZahlentheorie/tools/corpus
2026-08-14 13:14:41 +02:00
..
2026-08-14 13:14:41 +02:00
2026-08-14 13:14:41 +02:00
2026-08-14 13:14:41 +02:00
2026-08-14 13:14:41 +02:00
2026-08-14 13:14:41 +02:00
2026-08-14 13:14:41 +02:00
2026-08-14 13:14:41 +02:00

AZ-Tutor — Korpus und Prototyp

Erzeugt aus den LaTeX-Quellen des Skriptes einen Markdown-Korpus, den man in Open WebUI (https://openwebui.uni-freiburg.de) als Wissensspeicher hochlädt. Gesamtplan: Plan-AZ-Tutor.md im Wurzelverzeichnis.

Bauen

latexmk --pdf AlgebraZahlentheorie.tex   # muss zuerst laufen
./tools/corpus/build-corpus.sh

deploy.sh ruft den Korpusbau bereits auf. Die Reihenfolge ist nicht verhandelbar: Nummern, Seiten und Querverweise stammen aus .aux, .toc, .synctex.gz und dem gebauten PDF. Läuft der Korpusbau auf einem veralteten Stand, wird der Korpus still und leise falsch — deshalb warnt build-corpus.sh, wenn die Hilfsdateien älter sind als die Quellen.

Was entsteht

corpus/                                     (abgeleitet, nicht in git)
  00-vorbemerkung.md
  00-inhaltsverzeichnis.md                  Navigation, Seitenzahlen
  00-verzeichnis-aussagen.md                alle 467 Aussagen + Kurzinhalt
  00-verzeichnis-aussagen-kompakt.md        dieselbe Liste für den Prompt
  00-stichwortverzeichnis.md                Begriff → Satznummer
  00-videos.md                              59 Erklärvideos → Aussage
  00-personen.md                            Kurzbiographien aus den Fußnoten
  00-literatur.md
  kapitel-01/ … kapitel-25/                 eine Datei je Abschnitt
tools/corpus/systemprompt-erklaeren-komplett.md   fertiger System-Prompt

Prototyp in Open WebUI einrichten

  1. Wissensspeicher anlegen. Arbeitsbereich → Wissen → +. Alle Dateien aus corpus/ hochladen (96 Abschnitts- und 7 Verzeichnisdateien).

    Name: AZ-Skript — Algebra und Zahlentheorie

    Beschreibung (Open WebUI zeigt sie dem Modell mit, wenn der Speicher angehängt ist — deshalb lohnt sich der letzte Absatz):

    Volltext des Skriptes „Algebra und Zahlentheorie“ von Stefan Kebekus (Universität Freiburg, CC-BY 4.0), automatisch aus den LaTeX-Quellen erzeugt.

    Inhalt: 25 Kapitel in 79 Abschnitten (Körpererweiterungen, Ringe, Körper- und Galoistheorie, Gruppentheorie, Anwendungen), dazu Inhaltsverzeichnis, Stichwortverzeichnis, ein Verzeichnis aller 467 numerierten Aussagen, eine Liste der 59 Erklärvideos, Kurzbiographien und die Literaturliste.

    Besonderheit: Jede Aussage und jeder Beweis trägt Typ, gedruckte Nummer und Seitenzahl in der eigenen Überschrift (z. B. „Satz 15.2.3“, „Beweis von Satz 15.2.3“, „gedruckte Seite 107“). Querverweise sind bereits zu Nummern aufgelöst. Damit kann jede Antwort präzise auf die Stelle im PDF verweisen.

    Zweck: Grundlage für den AZ-Tutor, der Studierenden den Stoff erklärt und beim eigenständigen Lösen der Übungsaufgaben hilft. Das Skript ist die maßgebliche Quelle — bei Abweichungen zwischen allgemeinem Lehrbuchwissen und dem Skript gilt das Skript. Lean und Mathlib gehören nicht zum Stoff dieser Vorlesung und sind im Korpus bewusst nicht enthalten.

    Ein späterer zweiter Speicher mit Musterlösungen (WP3) braucht eine deutlich andere Beschreibung, damit er nicht versehentlich am Hinweise-Modell landet — dort wäre die Hinweisleiter sonst sinnlos.

  2. Modell anlegen. Arbeitsbereich → Modelle → +.

    • Name: AZ-Tutor — Erklären & Hinweise
    • Basismodell: ufr/chat-standard (Gemma 4 31B, 256k, lokal) — für den ersten Eindruck genügt das. Zum Vergleich lohnt ein zweites Modell auf qwen-3.5-397b-llmlb oder glm-5.2-llmlb.
    • System Prompt: Inhalt von tools/corpus/systemprompt-erklaeren-komplett.md einfügen (~6k Token).
    • Wissen: AZ-Skript verknüpfen.
    • Temperatur: 0,2–0,3.
  3. Chunk-Größe. Open WebUI zerlegt hochgeladene Dateien noch einmal selbst (Standard 1500 Zeichen). Die Abschnittsdateien sind auf ~4000 Zeichen ausgelegt; falls das RZ die Einstellung freigibt, Chunk-Größe 4000 / Overlap 300 setzen. Sonst funktioniert es auch mit dem Standard — jede Aussage und jeder Beweis trägt seine Nummer in der eigenen Überschrift, damit ein einzelner Chunk sich selbst identifiziert.

Erste Testfragen (Kurzform von E1 aus dem Plan)

Frage Erwartung
Was besagt Satz 16.1.4? korrekte Aussage + Seite
Wo wird „separabel“ eingeführt? Kapitel 14, richtiger Abschnitt
Warum braucht der Hauptsatz der Galoistheorie die Normalität? inhaltlich, mit Verweis
Nenne einen faktoriellen, nicht euklidischen Ring Beispiel aus dem Skript
Was sagt der Satz von Wedderburn? „steht nicht im Skript“

Entscheidend ist die letzte Zeile und die Frage, ob irgendeine Satznummer auftaucht, die es nicht gibt. Genau dagegen steht das Aussagenverzeichnis im System-Prompt.

Aufbau der Skripte

Datei Aufgabe
az_registry.py Zählersimulation, Seiten, Selbsttest. Bricht ab, wenn eine Nummer nicht zur .aux passt. Auch als Modul nutzbar.
az_prelude.tex Makrodefinitionen, die pandoc vorangestellt werden — ohne sie löscht pandoc Titel, \video, \schritt und \factor samt Argument.
az_convert.py Vorverarbeitung → pandoc → Nachbereitung → Abschnittsdateien.
az_indexes.py die sieben Verzeichnisdateien.
build-corpus.sh Orchestrierung samt Frischeprüfung.

Arbeitsteilung: Python macht alles, was mit Zählern, Seiten, Labels, Querverweisen, Index und Videos zu tun hat — davon weiß pandoc nichts. pandoc macht den Textsatz; die Unicode-Mathematik des Skriptes (ℤ, α, →, ∈) geht dabei unverändert durch.

Was der Selbsttest prüft

  • 174 gelabelte Aussagen: simulierte Nummer == .aux
  • 68 gelabelte Listenpunkte: simulierte Nummer == .aux
  • 464 von 467 Aussagen: Typ + Nummer tauchen wörtlich im PDF-Text auf (die restlichen 3 über synctex)
  • alle 494 \ref/\vref/\eqref auflösbar — kein ?? im Korpus

Schlägt etwas davon fehl, bricht der Bau ab. Das ist Absicht: ein Korpus mit falschen Nummern ist schlimmer als gar keiner.