This commit is contained in:
team3
2026-06-24 09:25:14 +02:00
parent 3b1e84e17d
commit d389584b58
10 changed files with 251 additions and 212 deletions

View File

@@ -230,8 +230,8 @@ class BausteinPruefungRequest(BaseModel):
nachgefragt: bool = False # für diese Frage wurde nachgefragt → Gewinn auf +1 gedeckelt
begruendung: str = Field(default="", max_length=2000) # „Gründlich prüfen": warum mit der Bewertung unzufrieden
muster: str = Field(default="", max_length=2000) # gezogenes Frage-Muster (Saat); leer → Live-Generierung (Fallback)
# Basis wird serverseitig je Frage geführt (offene_frage-Anker) — nicht mehr vom Client.
cap: int = Field(default=6, ge=6, le=30) # Score-Deckel = Max des höchsten erstellten Formats (6/12/18/30)
# Basis + cap werden serverseitig geführt (Anker bzw. 2×Subs) — Client-cap nur Hinweis.
cap: int = Field(default=10, ge=1, le=50) # Score-Deckel = clamp(2×relevante Subbausteine, 10, 50)
messages: list[ChatMessage] = [] # Dialog bisher; leer = erste Frage
provider: ProviderType = "claude"
gruendlich: bool = False # „Gründlich prüfen": Bewertung mit starkem Modell (role guide)
@@ -253,17 +253,13 @@ class BausteinPruefungResponse(BaseModel):
loesung: str | None = None # Lückentext: erwarteter Begriff
alternativen: list[str] | None = None # Lückentext: akzeptierte Synonyme
gute_antworten: int
absolviert: bool
verstanden: bool = False
gemeistert: bool = False
cap: int = 10 # Maximal-Score dieses Bausteins (2×Subs, geklemmt) — Frontend leitet die Stufe ab
class BausteinLernstand(BaseModel):
gute_antworten: int
streak: int = 0
absolviert: bool
verstanden: bool
gemeistert: bool
cap: int = 10 # 2×relevante Subbausteine, geklemmt [10, 50]
class BausteinLernstandResponse(BaseModel):