Card context

This commit is contained in:
2026-05-02 18:33:38 +02:00
parent 23e6125fb3
commit 7dccc51ce1
6 changed files with 121 additions and 12 deletions

View File

@@ -26,6 +26,7 @@ from .program_content import (
)
from .services import (
build_llm_reply,
build_lesson_reply,
ensure_student_mastery,
evaluate_answer,
list_tts_profiles,
@@ -347,20 +348,27 @@ def chat(
lesson_context = ""
if payload.lesson_title or payload.section_title or payload.asset_title:
lesson_context = (
"\n\nContexte de lécran actuellement montré à lélève: "
f"leçon={payload.lesson_title or 'non précisée'}, "
f"fiche={payload.asset_title or 'non précisée'}, "
f"carte affichée={payload.section_title or 'non précisée'}, "
f"avancement={payload.step_percent if payload.step_percent is not None else 'non précisé'}%. "
"Réponds uniquement à propos de cette carte. Vérifie que lélève comprend ce qui est affiché. "
"Si lélève dit quil a compris, invite-le à passer à létape suivante."
f"Leçon courante: {payload.lesson_title or 'non précisée'}\n"
f"Fiche courante: {payload.asset_title or 'non précisée'}\n"
f"Card courante: {payload.section_title or 'non précisée'}\n"
f"Clé de contexte: {payload.section_context_key or 'non précisée'}\n"
f"Avancement affiché: {payload.step_percent if payload.step_percent is not None else 'non précisé'}%\n"
"Règle: réponds uniquement à propos de cette card et vérifie la compréhension de l'élève.\n"
)
if payload.section_context:
lesson_context += f"\nTexte pédagogique de la card courante:\n{payload.section_context.strip()}"
reply = build_llm_reply(db, payload.student_id, f"{payload.message}{lesson_context}")
if lesson_context:
lesson_reply = build_lesson_reply(db, payload.student_id, payload.message, lesson_context)
reply = lesson_reply["reply"]
advance_lesson_step = lesson_reply["advance_lesson_step"]
else:
reply = build_llm_reply(db, payload.student_id, payload.message)
advance_lesson_step = False
db.add(models.Message(student_id=student.id, role="assistant", content=reply))
db.commit()
return schemas.ChatResponse(reply=reply)
return schemas.ChatResponse(reply=reply, advance_lesson_step=advance_lesson_step)
@app.post("/transcribe")