update
This commit is contained in:
@@ -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:
|
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.
|
"""Ausführlichere Fassung des Bausteins als Markdown · None bei Fehler.
|
||||||
|
|
||||||
art "vertiefung" = kurz (~75–150 Wörter), "deepdive" = lang (300–600 Wörter).
|
art "vertiefung" = gleicher Stoff, nur umfangreicher;
|
||||||
|
"deepdive" = Label „Amateur": gleicher Stoff, für Einsteiger aufbereitet.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
prompt = _prompt(
|
prompt = _prompt(
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ async def remove_bausteine(topic: str):
|
|||||||
# --- Baustein-Lernen: Vertiefung, Chat, Prüfung ---
|
# --- Baustein-Lernen: Vertiefung, Chat, Prüfung ---
|
||||||
|
|
||||||
async def _bester_text(topic: str, baustein: str) -> str | None:
|
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")
|
return await get_vertiefung(topic, baustein, "deepdive") or await get_vertiefung(topic, baustein, "vertiefung")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ function toggle(tab) {
|
|||||||
if (activeTab.value === 'vertiefung' || activeTab.value === 'deepdive') openText(activeTab.value)
|
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({
|
const texte = ref({
|
||||||
vertiefung: { md: null, loading: false, error: '' },
|
vertiefung: { md: null, loading: false, error: '' },
|
||||||
deepdive: { md: null, loading: false, error: '' },
|
deepdive: { md: null, loading: false, error: '' },
|
||||||
@@ -174,7 +174,7 @@ function neuBewerten() {
|
|||||||
Vertiefung
|
Vertiefung
|
||||||
</button>
|
</button>
|
||||||
<button :class="{ active: activeTab === 'deepdive' }" @click="toggle('deepdive')">
|
<button :class="{ active: activeTab === 'deepdive' }" @click="toggle('deepdive')">
|
||||||
Deep Dive
|
Amateur
|
||||||
</button>
|
</button>
|
||||||
<button :class="{ active: activeTab === 'chat' }" @click="toggle('chat')">
|
<button :class="{ active: activeTab === 'chat' }" @click="toggle('chat')">
|
||||||
Chat
|
Chat
|
||||||
@@ -189,7 +189,7 @@ function neuBewerten() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="activeTab" class="bp-panel">
|
<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'">
|
<div v-if="activeTab === 'vertiefung' || activeTab === 'deepdive'">
|
||||||
<p v-if="texte[activeTab].loading" class="bp-hint">{{ texte[activeTab].md === null ? 'Generiere…' : 'Lade…' }}</p>
|
<p v-if="texte[activeTab].loading" class="bp-hint">{{ texte[activeTab].md === null ? 'Generiere…' : 'Lade…' }}</p>
|
||||||
<template v-else-if="texte[activeTab].md">
|
<template v-else-if="texte[activeTab].md">
|
||||||
@@ -197,9 +197,9 @@ function neuBewerten() {
|
|||||||
<button class="bp-action" @click="generateText(activeTab)">Neu generieren</button>
|
<button class="bp-action" @click="generateText(activeTab)">Neu generieren</button>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<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)">
|
<button class="bp-action" @click="generateText(activeTab)">
|
||||||
{{ activeTab === 'deepdive' ? 'Deep Dive generieren' : 'Vertiefung generieren' }}
|
{{ activeTab === 'deepdive' ? 'Amateur generieren' : 'Vertiefung generieren' }}
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
<p v-if="texte[activeTab].error" class="bp-error">{{ texte[activeTab].error }}</p>
|
<p v-if="texte[activeTab].error" class="bp-error">{{ texte[activeTab].error }}</p>
|
||||||
|
|||||||
@@ -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:
|
GUIDE-FASSUNG DES BAUSTEINS:
|
||||||
{section_block}
|
{section_block}
|
||||||
|
|
||||||
Inhalt des Deep Dives:
|
So baust du es auf:
|
||||||
- Geh deutlich tiefer als die Guide-Fassung: das Warum hinter den Regeln gründlich, Mechanik im Detail, nicht nur das Wie.
|
- Genau dasselbe Konzept wie der Guide — nur viel ausführlicher und einfacher erklärt.
|
||||||
- Mehr und reichere Beispiele als im Guide — Varianten, Grenzfälle, ein realistischer Anwendungsfall.
|
- Sehr kleinschrittig: Gedanke für Gedanke, nichts überspringen.
|
||||||
- Typische Fehler und Missverständnisse, jeweils mit Korrektur.
|
- Viele Alltags-Analogien und Bilder, die das Konzept greifbar machen.
|
||||||
- Abgrenzung zu verwandten Konzepten, wo Verwechslungsgefahr besteht.
|
- Jeden Fachbegriff beim ersten Auftreten ausführlich erklären, in Alltagssprache.
|
||||||
- Baue auf der kompakten Fassung auf, wiederhole sie nicht.
|
- 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:
|
Stil:
|
||||||
- Klares Deutsch, direkt, praxisorientiert. Fachbegriffe beim ersten Auftreten kurz erklären.
|
- Klares, geduldiges Deutsch. Du nimmst den Leser an die Hand.
|
||||||
- Markdown: Absätze, `inline-code`, Codeblöcke mit Sprachangabe nur für Code, ### für Zwischenüberschriften, **fett** sparsam.
|
- Ausführlicher als die Guide-Fassung, aber kein Roman. Die Länge folgt dem Verständnis, nicht dem Wortzähler.
|
||||||
- Umfang: deutlich ausführlicher als die Guide-Fassung, aber kein Roman — etwa 300–600 Wörter plus Beispiele.
|
- Mathematik IMMER als LaTeX: inline `$…$` (z. B. `$\Sigma^*$`, `$O(n^d)$`), abgesetzt `$$…$$`. KEINE Unicode-Krücken (`x₁`, `¬`, `≤`).
|
||||||
- KEINE Zusammenfassung am Ende, kein Fazit-Abschnitt.
|
- 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.
|
||||||
|
|||||||
@@ -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:
|
GUIDE-FASSUNG DES BAUSTEINS:
|
||||||
{section_block}
|
{section_block}
|
||||||
|
|
||||||
Inhalt:
|
Was „mehr" heißt:
|
||||||
- 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.
|
- Genau dasselbe Konzept, dieselbe Stufe, derselbe Leser (Anfänger ohne Vorwissen).
|
||||||
- 1–2 zusätzliche Beispiele: eine andere Variante oder ein Grenzfall, nicht die Guide-Beispiele wiederholen.
|
- Jeden Punkt der Guide-Fassung etwas weiter ausführen, langsameres Tempo.
|
||||||
- Höchstens ein typischer Fehler, wenn er wirklich häufig ist.
|
- Mehr Beispiele und zusätzliche Varianten zum SELBEN Konzept.
|
||||||
- Nichts wiederholen, was die kompakte Fassung schon sagt.
|
|
||||||
|
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:
|
Stil:
|
||||||
- Klares Deutsch, direkt. ~75–150 Wörter Prosa plus die Beispiele.
|
- Klares, direktes Deutsch. Merklich ausführlicher als die Guide-Fassung, aber kein Roman.
|
||||||
- Markdown: Absätze, `inline-code`, Codeblöcke mit Sprachangabe nur für Code.
|
- Fachbegriffe beim ersten Auftreten in einem Halbsatz auflösen.
|
||||||
- KEINE Zwischenüberschriften, KEINE Zusammenfassung, kein Fazit.
|
- 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.
|
Gib NUR das Markdown der Vertiefung aus — keine Einleitung wie "Hier ist…", kein Code-Fence um das Ganze, kein JSON.
|
||||||
|
|||||||
Reference in New Issue
Block a user