This commit is contained in:
team3
2026-06-14 22:09:48 +02:00
parent 54adcdc50c
commit 6e5d673ca7
5 changed files with 39 additions and 28 deletions

View File

@@ -52,7 +52,8 @@ def _transcript(messages: list[dict]) -> str:
async def vertiefung_generieren(topic: str, baustein: str, section: str, art: str = "vertiefung", provider: str = DEFAULT_PROVIDER) -> str | None:
"""Ausführlichere Fassung des Bausteins als Markdown · None bei Fehler.
art "vertiefung" = kurz (~75150 Wörter), "deepdive" = lang (300600 Wörter).
art "vertiefung" = gleicher Stoff, nur umfangreicher;
"deepdive" = Label „Amateur": gleicher Stoff, für Einsteiger aufbereitet.
"""
try:
prompt = _prompt(

View File

@@ -148,7 +148,7 @@ async def remove_bausteine(topic: str):
# --- Baustein-Lernen: Vertiefung, Chat, Prüfung ---
async def _bester_text(topic: str, baustein: str) -> str | None:
"""Kontext für Chat/Prüfung: Deep Dive bevorzugt, sonst kurze Vertiefung."""
"""Kontext für Chat/Prüfung: Amateur-Fassung (art 'deepdive') bevorzugt, sonst Vertiefung."""
return await get_vertiefung(topic, baustein, "deepdive") or await get_vertiefung(topic, baustein, "vertiefung")

View File

@@ -27,7 +27,7 @@ function toggle(tab) {
if (activeTab.value === 'vertiefung' || activeTab.value === 'deepdive') openText(activeTab.value)
}
// --- Vertiefung (kurz) + Deep Dive (lang), beide persistiert ---
// --- Vertiefung (gleicher Stoff, mehr) + Amateur (gleicher Stoff, für Einsteiger), beide persistiert (intern art 'deepdive') ---
const texte = ref({
vertiefung: { md: null, loading: false, error: '' },
deepdive: { md: null, loading: false, error: '' },
@@ -174,7 +174,7 @@ function neuBewerten() {
Vertiefung
</button>
<button :class="{ active: activeTab === 'deepdive' }" @click="toggle('deepdive')">
Deep Dive
Amateur
</button>
<button :class="{ active: activeTab === 'chat' }" @click="toggle('chat')">
Chat
@@ -189,7 +189,7 @@ function neuBewerten() {
</div>
<div v-if="activeTab" class="bp-panel">
<!-- Vertiefung (kurz) / Deep Dive (lang) -->
<!-- Vertiefung (gleicher Stoff, mehr) / Amateur (gleicher Stoff, für Einsteiger) -->
<div v-if="activeTab === 'vertiefung' || activeTab === 'deepdive'">
<p v-if="texte[activeTab].loading" class="bp-hint">{{ texte[activeTab].md === null ? 'Generiere' : 'Lade' }}</p>
<template v-else-if="texte[activeTab].md">
@@ -197,9 +197,9 @@ function neuBewerten() {
<button class="bp-action" @click="generateText(activeTab)">Neu generieren</button>
</template>
<template v-else>
<p class="bp-hint">{{ activeTab === 'deepdive' ? 'Noch kein Deep Dive zu diesem Baustein.' : 'Noch keine Vertiefung zu diesem Baustein.' }}</p>
<p class="bp-hint">{{ activeTab === 'deepdive' ? 'Noch keine Amateur-Fassung zu diesem Baustein.' : 'Noch keine Vertiefung zu diesem Baustein.' }}</p>
<button class="bp-action" @click="generateText(activeTab)">
{{ activeTab === 'deepdive' ? 'Deep Dive generieren' : 'Vertiefung generieren' }}
{{ activeTab === 'deepdive' ? 'Amateur generieren' : 'Vertiefung generieren' }}
</button>
</template>
<p v-if="texte[activeTab].error" class="bp-error">{{ texte[activeTab].error }}</p>

View File

@@ -1,19 +1,24 @@
Schreibe einen Deep Dive zum Baustein "{baustein}" aus dem Lern-Guide zum Thema "{topic}". Der Leser kennt die Guide-Fassung — die erklärt das Konzept schon — und will jetzt tief einsteigen.
Schreibe eine Einsteiger-Fassung („Amateur") des Bausteins "{baustein}" aus dem Lern-Guide zum Thema "{topic}". Gleicher Stoff wie im Guide — aber für absolute Anfänger aufbereitet: maximal verständlich, kleinschrittig, nichts vorausgesetzt.
GUIDE-FASSUNG DES BAUSTEINS:
{section_block}
Inhalt des Deep Dives:
- Geh deutlich tiefer als die Guide-Fassung: das Warum hinter den Regeln gründlich, Mechanik im Detail, nicht nur das Wie.
- Mehr und reichere Beispiele als im Guide — Varianten, Grenzfälle, ein realistischer Anwendungsfall.
- Typische Fehler und Missverständnisse, jeweils mit Korrektur.
- Abgrenzung zu verwandten Konzepten, wo Verwechslungsgefahr besteht.
- Baue auf der kompakten Fassung auf, wiederhole sie nicht.
So baust du es auf:
- Genau dasselbe Konzept wie der Guide — nur viel ausführlicher und einfacher erklärt.
- Sehr kleinschrittig: Gedanke für Gedanke, nichts überspringen.
- Viele Alltags-Analogien und Bilder, die das Konzept greifbar machen.
- Jeden Fachbegriff beim ersten Auftreten ausführlich erklären, in Alltagssprache.
- Beispiele langsam durchgehen — Schritt für Schritt zeigen, was passiert.
Was NICHT:
- NICHT schwerer oder tiefer. Keine Grenzfälle, keine Abgrenzung, kein Experten-Stoff.
- Du bringst mehr ERKLÄRUNG, nicht mehr Konzepte.
- Setze nichts voraus — auch nicht, dass der Leser die Guide-Fassung verstanden hat.
Stil:
- Klares Deutsch, direkt, praxisorientiert. Fachbegriffe beim ersten Auftreten kurz erklären.
- Markdown: Absätze, `inline-code`, Codeblöcke mit Sprachangabe nur für Code, ### für Zwischenüberschriften, **fett** sparsam.
- Umfang: deutlich ausführlicher als die Guide-Fassung, aber kein Roman — etwa 300600 Wörter plus Beispiele.
- KEINE Zusammenfassung am Ende, kein Fazit-Abschnitt.
- Klares, geduldiges Deutsch. Du nimmst den Leser an die Hand.
- Ausführlicher als die Guide-Fassung, aber kein Roman. Die Länge folgt dem Verständnis, nicht dem Wortzähler.
- Mathematik IMMER als LaTeX: inline `$…$` (z. B. `$\Sigma^*$`, `$O(n^d)$`), abgesetzt `$$…$$`. KEINE Unicode-Krücken (`x₁`, `¬`, `≤`).
- Markdown: Absätze, `inline-code`, Codeblöcke mit Sprachangabe nur für Code, `###` für Zwischenüberschriften, **fett** sparsam. KEINE Zusammenfassung am Ende, kein Fazit-Abschnitt.
Gib NUR das Markdown des Deep Dives aus — keine Einleitung wie "Hier ist…", kein Code-Fence um das Ganze, kein JSON.
Gib NUR das Markdown der Einsteiger-Fassung aus — keine Einleitung wie "Hier ist…", kein Code-Fence um das Ganze, kein JSON.

View File

@@ -1,17 +1,22 @@
Schreibe eine kurze Vertiefung zum Baustein "{baustein}" aus dem Lern-Guide zum Thema "{topic}". Der Leser kennt die Guide-Fassung — die erklärt das Konzept bereits — und will einen Schritt weiter, nicht mehr.
Schreibe eine ausführlichere Fassung des Bausteins "{baustein}" aus dem Lern-Guide zum Thema "{topic}". Gleicher Stoff wie im Guide — nur umfangreicher. Keine Erweiterung, nur MEHR.
GUIDE-FASSUNG DES BAUSTEINS:
{section_block}
Inhalt:
- Geh über die Guide-Fassung hinaus: ein tieferer Grund, eine Feinheit oder ein Aspekt, den der Guide bewusst weglässt. Wiederhole NICHT das Warum, das der Guide schon erklärt.
- 12 zusätzliche Beispiele: eine andere Variante oder ein Grenzfall, nicht die Guide-Beispiele wiederholen.
- Höchstens ein typischer Fehler, wenn er wirklich häufig ist.
- Nichts wiederholen, was die kompakte Fassung schon sagt.
Was „mehr" heißt:
- Genau dasselbe Konzept, dieselbe Stufe, derselbe Leser (Anfänger ohne Vorwissen).
- Jeden Punkt der Guide-Fassung etwas weiter ausführen, langsameres Tempo.
- Mehr Beispiele und zusätzliche Varianten zum SELBEN Konzept.
Was NICHT:
- KEINE neuen Konzepte, keine Grenzfälle, keine Abgrenzung zu Nachbarthemen.
- Nichts „über den Guide hinaus" — du gehst nicht tiefer, du gehst breiter.
- Kein Aufblähen mit Floskeln. Mehr Text nur, wo er echtes Verständnis bringt.
Stil:
- Klares Deutsch, direkt. ~75150 Wörter Prosa plus die Beispiele.
- Markdown: Absätze, `inline-code`, Codeblöcke mit Sprachangabe nur für Code.
- KEINE Zwischenüberschriften, KEINE Zusammenfassung, kein Fazit.
- Klares, direktes Deutsch. Merklich ausführlicher als die Guide-Fassung, aber kein Roman.
- Fachbegriffe beim ersten Auftreten in einem Halbsatz auflösen.
- Mathematik IMMER als LaTeX: inline `$…$` (z. B. `$\Sigma^*$`, `$O(n^d)$`), abgesetzt `$$…$$`. KEINE Unicode-Krücken (`x₁`, `¬`, `≤`).
- Markdown: Absätze, `inline-code`, Codeblöcke mit Sprachangabe nur für Code. KEINE Zwischenüberschriften, KEINE Zusammenfassung, kein Fazit.
Gib NUR das Markdown der Vertiefung aus — keine Einleitung wie "Hier ist…", kein Code-Fence um das Ganze, kein JSON.