Volver al bento
Tesis de Investigación 100% Offline / Local CPU

Edge AI Tutor Sandbox

Arquitectura híbrida de evaluación aislada de código, RAG local e IA cuantizada orientada a mitigar la alucinación lógica y las distracciones cognitivas en entornos educativos.


Flujo de Datos End-to-End

1

Frontend (index.html)

Envío estructurado via FormData (Evita Prompt Injection).

2

FastAPI Core Engine (main.py)

Recibe binario .py y persiste transacciones en SQLite (Gating).

3

Docker Sandbox Hermético (Orquestador)

Ejecución aislada (3s máx) contra Pytest oculto. Extrae JSON.

4

Motor RAG Local (ChromaDB + Ollama)

Cruza el error con apuntes del docente. Inferencia con Qwen 2.5 Coder 3B.

Guardrail de Salida & Feedback Socrático

Censura de código directo mediante backend y entrega de pistas lógicas.

Especificación del Endpoint Núcleo

POST /evaluar multipart/form-data
Parámetro Tipo Descripción
alumno_id string Identificador único del estudiante.
ejercicio_id string Código del problema a evaluar (ej. dict_01).
file file (binary) Archivo fuente de Python (.py) desarrollado.

Persistencia Estricta (Estrategia Anti Rote-Learning)

Para medir objetivamente el progreso y evitar que el estudiante memorice o adivine soluciones aleatoriamente, el esquema relacional en SQLite almacena el historial transaccional de reintentos de forma atómica.

-- Estructura de control incremental de intentos
CREATE TABLE IF NOT EXISTS progreso (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    alumno_id TEXT NOT NULL,
    ejercicio_id TEXT NOT NULL,
    estado TEXT NOT NULL,
    intentos INTEGER DEFAULT 1
);

Hallazgos de Ingeniería & Mitigación

⚠️ Conflicto de Entorno: Live Reload vs Containerization

Durante pruebas con el flag --reload de Uvicorn, la escritura física de los archivos entregados por el alumno disparaba el File System Watcher, reiniciando el servidor e interrumpiendo el ciclo de vida del contenedor Docker antes de leer el reporte JSON.

Solución: Modificación del entorno de ejecución aislado de volúmenes o deshabilitación estática del watcher en producción.

🧠 Límites de Razonamiento en Modelos Cuantizados (SLM)

Pruebas masivas con Qwen 2.5 Coder 3B demostraron un cumplimiento estricto del formato socrático, pero revelaron alucinaciones lógicas bajo fallas sintácticas complejas (ej. confundir conceptualmente el uso de .keys() con .values()).

Mitigación: Re-estructuración del prompt inyectado usando arquitecturas de Chain-of-Thought (CoT) y Few-Shot Prompting estructurado para guiar la inferencia atómica del modelo.