update
This commit is contained in:
@@ -20,7 +20,7 @@ from database import (
|
||||
from bausteine import generate_bausteine, cancel_bausteine, bausteine_status, active_bausteine, reset_bausteine, lade_quelle, lade_uebersicht, subbausteine_titel, lade_frage_muster
|
||||
from elements import generate_element, chat_with_guide, chat_with_element, check_element, style_element, refine_suggestion
|
||||
from lernen import NIVEAUS, cap_fuer, baustein_chat, baustein_diskussion, baustein_element_anlegen, pruefung_bewertung, pruefung_bewertung_schnell, pruefung_frage, pruefung_frage_variante, quiz_generieren, lueckwahl_generieren, lueckentext_generieren, lueckentext_pruefen, score_berechnen, floor_aus_score, progressiver_malus, stufe_aus_score
|
||||
from guide import generate_guide, guide_slot_dateien, guide_fertig_step
|
||||
from guide import generate_guide, guide_slot_dateien, guide_fertig_step, block_pruefen, block_uebernehmen
|
||||
from pipeline import cancel_guide
|
||||
from regeln import FORMATE, formate_stats, guide_lock, ist_absolviert, lade_lernstand, thema_abgeschlossen
|
||||
from models import (
|
||||
@@ -35,6 +35,7 @@ from models import (
|
||||
FolderResponse, BausteineQuelleUpdate, BausteineQuelleResponse, BausteinUebersicht,
|
||||
BausteinChatRequest, BausteinChatResponse,
|
||||
BausteinPruefungRequest, BausteinPruefungResponse, BausteinLernstandResponse,
|
||||
BlockPruefenRequest, BlockPruefenResponse, BlockUebernehmenRequest, BlockUebernehmenResponse,
|
||||
)
|
||||
from paths import bausteine_topics, guide_content_path, project_dir, topic_dir, quelle_path, safe_ordner
|
||||
from fsutil import atomic_write_json
|
||||
@@ -221,7 +222,7 @@ async def get_frage_muster(topic: str, baustein: str):
|
||||
|
||||
@router.get("/bausteine/lernstand", response_model=BausteinLernstandResponse)
|
||||
async def baustein_lernstand(topic: str):
|
||||
"""Prüfungs-Stand pro Baustein (roher Titel als Key). cap = 2×relevante Subs [10,50]
|
||||
"""Prüfungs-Stand pro Baustein (roher Titel als Key). cap = 4×relevante Subs [10,50]
|
||||
— für ALLE Bausteine (auch noch nicht geprüfte), damit der cap sofort stimmt."""
|
||||
progress = {p["baustein"]: p for p in await list_baustein_progress(topic)}
|
||||
caps = await subs_count_roh(topic)
|
||||
@@ -281,7 +282,7 @@ def _erklaeren_delta(niveau: str, nachgefragt: bool) -> int:
|
||||
|
||||
|
||||
async def _cap_fuer(topic: str, baustein: str) -> int:
|
||||
"""Maximal-Score des Bausteins = clamp(2×relevante Subbausteine, 10, 50)."""
|
||||
"""Maximal-Score des Bausteins = clamp(4×relevante Subbausteine, 10, 50)."""
|
||||
return cap_fuer(await count_relevant_subs(topic, baustein))
|
||||
|
||||
|
||||
@@ -517,6 +518,31 @@ async def guide_chat(guide_id: str, req: GuideChatRequest):
|
||||
return {"reply": reply}
|
||||
|
||||
|
||||
async def _guide_tf(guide_id: str) -> tuple[str, str]:
|
||||
guide = await get_guide(guide_id)
|
||||
if guide is None:
|
||||
raise HTTPException(404, "Guide nicht gefunden")
|
||||
return guide["topic"], guide["format"]
|
||||
|
||||
|
||||
@router.post("/guides/{guide_id}/block/pruefen", response_model=BlockPruefenResponse)
|
||||
async def block_pruefen_route(guide_id: str, req: BlockPruefenRequest):
|
||||
topic, fmt = await _guide_tf(guide_id)
|
||||
neu = await block_pruefen(topic, fmt, req.baustein, req.stelle, req.block, req.hinweis, provider=req.provider)
|
||||
if neu is None:
|
||||
raise HTTPException(502, "Prüfung fehlgeschlagen — bitte erneut versuchen")
|
||||
return {"neu": neu}
|
||||
|
||||
|
||||
@router.post("/guides/{guide_id}/block/uebernehmen", response_model=BlockUebernehmenResponse)
|
||||
async def block_uebernehmen_route(guide_id: str, req: BlockUebernehmenRequest):
|
||||
topic, fmt = await _guide_tf(guide_id)
|
||||
res = await block_uebernehmen(topic, fmt, req.baustein, req.stelle, req.alt, req.neu)
|
||||
if res is None:
|
||||
raise HTTPException(404, "Section nicht gefunden")
|
||||
return res
|
||||
|
||||
|
||||
# --- Elemente (persönliche Zusammenfassung) ---
|
||||
|
||||
@router.get("/elements", response_model=list[ElementResponse])
|
||||
|
||||
Reference in New Issue
Block a user