Saltar a contenido

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.