Add materials, exam images, storage quota, and API guide
Upload documents for AI context, exam images for Moodle questions, per-template storage limits, embedded images in XML export, and GUIA_API_Y_FLUJO.md with full endpoint documentation.
This commit is contained in:
@@ -5,7 +5,13 @@ from app.models.exam import ExamTemplate
|
||||
|
||||
|
||||
class PromptBuilder:
|
||||
def build_prompt(self, template: ExamTemplate, topic_prompt: str) -> str:
|
||||
def build_prompt(
|
||||
self,
|
||||
template: ExamTemplate,
|
||||
topic_prompt: str,
|
||||
reference_context: str = "",
|
||||
images_catalog: str = "",
|
||||
) -> str:
|
||||
settings = template.settings
|
||||
difficulty_profile = template.difficulty_profile
|
||||
safe_topic = sanitize_prompt_input(topic_prompt)
|
||||
@@ -18,6 +24,7 @@ class PromptBuilder:
|
||||
"correct_answers": ["respuesta correcta"],
|
||||
"wrong_answers": ["distractor 1", "distractor 2"],
|
||||
"matching_pairs": [{"prompt": "concepto", "answer": "definicion"}],
|
||||
"image_id": "uuid-opcional-de-imagen-de-la-plantilla",
|
||||
"difficulty": "easy | medium | hard | very_hard",
|
||||
"score": 1.0,
|
||||
"penalty": 0.0,
|
||||
@@ -41,6 +48,20 @@ class PromptBuilder:
|
||||
"Tema, conceptos y restricciones indicadas por el profesor:",
|
||||
safe_topic,
|
||||
"",
|
||||
*(
|
||||
[
|
||||
"Material de referencia (usa SOLO esta información junto con el tema para crear preguntas):",
|
||||
sanitize_prompt_input(reference_context, max_length=12_000) if reference_context else "",
|
||||
"",
|
||||
]
|
||||
if reference_context.strip()
|
||||
else []
|
||||
),
|
||||
*(
|
||||
[images_catalog, ""]
|
||||
if images_catalog.strip()
|
||||
else []
|
||||
),
|
||||
"Contrato de salida obligatorio:",
|
||||
json.dumps(contract, ensure_ascii=False, indent=2),
|
||||
"",
|
||||
@@ -51,5 +72,7 @@ class PromptBuilder:
|
||||
"- En truefalse, usa una única respuesta correcta: true o false.",
|
||||
"- En shortanswer, incluye respuestas exactas aceptadas.",
|
||||
"- En matching, rellena matching_pairs y deja wrong_answers vacío.",
|
||||
"- Si la pregunta debe mostrar una imagen al alumno, incluye image_id del catálogo de imágenes.",
|
||||
"- El enunciado debe describir qué observar en la imagen vinculada (sin inventar image_id inexistentes).",
|
||||
]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user