Tutor educativo de comprensión lectora con inteligencia artificial local para estudiantes de primaria en contextos con conectividad limitada.
YachAI es un proyecto para la competencia Build with Gemma — GDG Lima AI Competition 2026. Su objetivo es acompañar a estudiantes de primaria durante la lectura de cuentos breves, evaluar sus respuestas con Gemma y ofrecer retroalimentación adaptativa sin depender permanentemente de Internet.
El proyecto contribuye principalmente al ODS 4: Educación de calidad y, de manera complementaria, al ODS 10: Reducción de las desigualdades.
Según PISA 2022, el 50 % de los estudiantes peruanos tiene bajo rendimiento en comprensión lectora, casi el doble del promedio de la OCDE (26 %)1. Los estudiantes de primaria de zonas rurales enfrentan además acceso limitado a acompañamiento personalizado y conectividad inestable: aunque cada vez hay más hogares con dispositivos móviles, el uso de internet en el área rural del Perú fue de 55.8 % en 2024, todavía muy por debajo del promedio urbano2. Muchas herramientas educativas con inteligencia artificial dependen de servicios en la nube, lo que reduce su utilidad cuando la conexión es intermitente o inexistente.
YachAI propone una experiencia de práctica que:
- funciona sobre una estación o dispositivo compartido;
- procesa localmente la sesión educativa crítica;
- reconoce lo que el estudiante comprendió antes de corregirlo;
- ofrece pistas y preguntas de seguimiento sin revelar inmediatamente la respuesta;
- guarda el perfil y el progreso en el dispositivo;
- complementa el trabajo docente, sin pretender reemplazarlo.
El flujo del MVP es:
Crear perfil
→ escoger un mundo y un nivel
→ leer un fragmento y escuchar una pregunta
→ responder por voz
→ transcribir localmente la respuesta
→ evaluar la comprensión con Gemma
→ recibir retroalimentación escrita y hablada
→ obtener estrellas y guardar el progreso
Gemma recibe únicamente el contexto educativo necesario: el grado, la lectura, la pregunta, la respuesta esperada, los criterios de evaluación y la respuesta del estudiante. La salida se valida antes de llegar a la aplicación y clasifica la comprensión como correct, partial o incorrect.
Ejemplo del resultado pedagógico esperado:
{
"comprehension_level": "partial",
"evidence": "Reconoció una parte de la idea principal.",
"feedback": "Entendiste una parte importante; revisemos qué ocurrió después.",
"next_question": "¿Qué hizo el personaje para resolver el problema?",
"show_answer": false
}Los puntos, estrellas y medallas se calculan mediante reglas de la aplicación, no con el modelo.
![]() Bienvenida |
![]() Mapa de niveles |
![]() Lectura y pregunta |
![]() Respuesta por voz |
![]() Retroalimentación de Gemma |
![]() Biblioteca y logros |
La arquitectura es edge-first: la nube puede ampliar el sistema, pero no debe ser necesaria para iniciar, continuar o terminar una sesión. Gemma no corre en el celular del estudiante (sería inviable en dispositivos de gama media/baja); corre en una estación compartida —la laptop del profesor o una computadora del colegio— gracias a la cuantización, sin necesitar GPU dedicada.
Aplicación Flutter (celular del estudiante)
│
│ HTTP sobre una red local o hotspot
▼
Servicio edge en Python (estación compartida)
├── STT local (faster-whisper)
├── Gemma local (vía Ollama)
└── TTS local (Piper, como respaldo del TTS nativo)
Responsabilidades principales:
| Componente | Responsabilidad |
|---|---|
| Flutter | Experiencia del estudiante, contenido, perfil y progreso local, y síntesis de voz nativa |
| Servicio edge | API local y coordinación de los modelos |
| STT | Conversión de la respuesta hablada a texto |
| Gemma | Evaluación pedagógica estructurada y adaptativa |
| TTS | Síntesis de voz de respaldo si la síntesis nativa del dispositivo falla |
Los contratos principales son GET /health, POST /transcribe, POST /evaluate y POST /speak. El servicio expone además GET /tts/status (disponibilidad de la voz) y GET /setup (página con QR para que el celular se conecte a la IP local de la estación, sin depender de un servicio externo).
La demostración está diseñada alrededor de una experiencia breve y completa:
- un perfil local sin cuentas ni contraseñas;
- dos mundos funcionales: El bosque mágico (tres niveles) y La isla de las nubes (tres niveles, mayor dificultad);
- dos o tres fases de lectura por nivel;
- cuentos, preguntas, respuestas esperadas y rúbricas predefinidos;
- entrada por voz y revisión de la transcripción;
- evaluación local con Gemma;
- retroalimentación adaptativa y TTS;
- progreso, estrellas y logros almacenados localmente.
No forman parte del MVP el entrenamiento o fine-tuning de Gemma, la generación automática de cuentos, la autenticación en línea, la sincronización cloud, un dashboard docente, la analítica educativa formal ni un motor 3D.
YachAI es un prototipo funcional construido durante la hackathon. El flujo completo descrito en este documento —perfil, mundos y niveles, lectura, respuesta por voz, evaluación con Gemma, retroalimentación hablada y progreso— está implementado tanto en la aplicación Flutter (apps/mobile) como en el servicio edge (apps/edge-service).
Sigue siendo un prototipo de hackathon, no un producto listo para producción: no ha pasado por una validación pedagógica formal con docentes o estudiantes reales (ver Limitaciones).
.
├── apps/
│ ├── edge-service/ # API en FastAPI: Gemma (Ollama), STT y TTS locales
│ └── mobile/ # Aplicación Flutter
├── docs/
│ └── assets/ # Capturas e imágenes usadas en este README
├── LICENSE # Apache License 2.0
└── README.md
La plantilla de configuración del servicio edge está en apps/edge-service/.env.example.
Para el flujo completo (lectura, voz y evaluación con Gemma) se necesitan dos partes corriendo: el servicio edge y la app móvil.
Requiere Python 3.12/3.13, Ollama con el modelo gemma4:e2b, y FFmpeg. Instrucciones completas, incluyendo la conexión por QR desde el celular, en apps/edge-service/README.md:
cd apps/edge-service
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
ollama serve & ollama pull gemma4:e2b
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadRequiere Flutter compatible con Dart ^3.12.2, y Android Studio, Xcode o un navegador configurado como destino de Flutter.
git clone <URL_DEL_REPOSITORIO>
cd yachai/apps/mobile
flutter pub get
flutter runDesde Perfil → Configurar servidor local, escanea el QR que expone el servicio edge en /setup para conectar la app a la estación local.
Para comprobar el estado del proyecto:
cd apps/mobile
flutter analyze
flutter test- Evaluar solo con la lectura y los criterios proporcionados.
- Aceptar paráfrasis, respuestas breves y errores ortográficos menores.
- Reconocer primero lo que el estudiante sí comprendió.
- Aplicar andamiaje antes de mostrar una respuesta.
- Mantener el diálogo dentro del contexto educativo.
- No almacenar audio por defecto.
- No enviar información personal identificable a los modelos.
- Utilizar perfiles ficticios o anónimos durante la demostración.
- Validar las respuestas estructuradas de Gemma en el servicio edge.
- Aplicación: Flutter y Dart.
- Servicio edge: Python y FastAPI.
- Modelo: Gemma 4 (
gemma4:e2b), ejecutado localmente vía Ollama. - STT: faster-whisper (modelo
small), en el servicio edge. - TTS: síntesis nativa del dispositivo (
flutter_tts) como método principal; Piper en el servicio edge como respaldo si la síntesis nativa falla. - Persistencia:
SharedPreferencespara perfil y progreso, almacenados en el dispositivo.
YachAI participa en Build with Gemma — GDG Lima AI Competition, dentro de los ejes:
- Local AI & Edge Intelligence.
- AI for Social Impact.
- Multimodal AI Applications.
La prioridad es demostrar un flujo funcional en el que Gemma sea central, la inferencia pueda ejecutarse localmente y la retroalimentación cambie según la respuesta del estudiante.
El informe completo del proyecto (problema, arquitectura, uso de Gemma, resultados e impacto) está en el writeup de Kaggle.
YachAI es un prototipo educativo. Todavía no ha sido validado mediante una evaluación pedagógica formal ni demuestra mejoras reales de aprendizaje. El soporte para hardware, grados, idiomas y contextos escolares adicionales requiere pruebas posteriores con docentes y estudiantes.
- Anjali: aplicación base, perfil, navegación e Inicio.
- Salim: servicio edge, Gemma y STT.
- Diego: mundos, Ruta, contenido y recursos visuales.
- Daniel: experiencia de aprendizaje e integración móvil.
- Paul: progreso, TTS, Biblioteca, integración y demo.
El proyecto se distribuye bajo Apache License 2.0. La voz de Piper usada por el servicio edge se distribuye bajo GPL-3.0 y no está incluida en este repositorio; revisa su compatibilidad de licencia antes de redistribuirla (ver apps/edge-service/README.md).






