Card context
This commit is contained in:
@@ -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 qu’il 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")
|
||||
|
||||
Reference in New Issue
Block a user