update
This commit is contained in:
@@ -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 + 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)
|
||||
# Basis + cap werden serverseitig geführt (Anker bzw. 4×Subs) — Client-cap nur Hinweis.
|
||||
cap: int = Field(default=10, ge=1, le=50) # Score-Deckel = clamp(4×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,14 +253,42 @@ class BausteinPruefungResponse(BaseModel):
|
||||
loesung: str | None = None # Lückentext: erwarteter Begriff
|
||||
alternativen: list[str] | None = None # Lückentext: akzeptierte Synonyme
|
||||
gute_antworten: int
|
||||
cap: int = 10 # Maximal-Score dieses Bausteins (2×Subs, geklemmt) — Frontend leitet die Stufe ab
|
||||
cap: int = 10 # Maximal-Score dieses Bausteins (4×Subs, geklemmt) — Frontend leitet die Stufe ab
|
||||
|
||||
|
||||
class BausteinLernstand(BaseModel):
|
||||
gute_antworten: int
|
||||
streak: int = 0
|
||||
cap: int = 10 # 2×relevante Subbausteine, geklemmt [10, 50]
|
||||
cap: int = 10 # 4×relevante Subbausteine, geklemmt [10, 50]
|
||||
|
||||
|
||||
class BausteinLernstandResponse(BaseModel):
|
||||
bausteine: dict[str, BausteinLernstand]
|
||||
|
||||
|
||||
# --- Block-Inhalt: einen Abschnitt on-demand prüfen + übernehmen (Fokus, Rechtsklick) ---
|
||||
|
||||
class BlockPruefenRequest(BaseModel):
|
||||
baustein: str = Field(min_length=1, max_length=200)
|
||||
stelle: str = "ausführlich" # "kompakt" | "ausführlich" (angezeigtes Feld)
|
||||
block: str = Field(min_length=1, max_length=20000) # roher Markdown-Block
|
||||
hinweis: str = Field(default="", max_length=2000) # optionaler Zusatz (✏️)
|
||||
provider: ProviderType = "claude"
|
||||
|
||||
|
||||
class BlockPruefenResponse(BaseModel):
|
||||
neu: str # korrigierter Block als Markdown
|
||||
|
||||
|
||||
class BlockUebernehmenRequest(BaseModel):
|
||||
baustein: str = Field(min_length=1, max_length=200)
|
||||
stelle: str = "ausführlich"
|
||||
alt: str = Field(min_length=1, max_length=20000)
|
||||
neu: str = Field(default="", max_length=20000)
|
||||
provider: ProviderType = "claude"
|
||||
|
||||
|
||||
class BlockUebernehmenResponse(BaseModel):
|
||||
kompakt: str
|
||||
md: str
|
||||
gefunden: bool
|
||||
|
||||
Reference in New Issue
Block a user