Especificación: Evaluación con IA
Descripción
Integración con OpenAI para evaluar respuestas de estudiantes comparándolas con una respuesta modelo y criterios pedagógicos.
Arquitectura del Servicio
AIEvaluationService
Clase encargada de la lógica de negocio.
class AIEvaluationService:
def evaluate_response(self, question, student_response):
# 1. Construir Prompt
# 2. Llamar API OpenAI
# 3. Parsear Respuesta JSON
# 4. Guardar Resultado
pass
Configuración (AIConfiguration)
Modelo Singleton para configuración dinámica desde el admin.
| Campo | Default | Descripción |
|---|---|---|
model_name |
"gpt-3.5-turbo" | Modelo a utilizar |
temperature |
0.7 | Creatividad de la respuesta |
system_prompt |
"Eres un profesor..." | Prompt base para todas las evaluaciones |
Prompt Engineering
El prompt enviado a la IA debe estructurarse para devolver JSON estricto:
Evalúa la siguiente respuesta del estudiante:
"{student_response}"
Contra esta respuesta correcta:
"{correct_answer}"
Instrucciones adicionales:
{evaluation_prompt}
Devuelve un JSON con:
- score (0-100)
- feedback (texto explicativo)
- key_points_missed (lista de conceptos faltantes)
Manejo de Errores
- Timeouts: Implementar retry con backoff exponencial (max 3 intentos).
- API Errors: Si OpenAI falla, no descontar créditos y notificar al usuario.
- Parsing Errors: Si la IA no devuelve JSON válido, marcar evaluación como "Fallida" para revisión manual.