Skip to content

Latest commit

 

History

73 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YachAI

Kaggle Writeup Build with Gemma — GDG Lima 2026 Licencia Apache 2.0
Flutter Python FastAPI Ollama Gemma

YachAI — Tutor de comprensión lectora con IA 100% local

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.

El problema

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.

Cómo funciona

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.

Capturas de pantalla


Bienvenida

Mapa de niveles

Lectura y pregunta

Respuesta por voz

Retroalimentación de Gemma

Biblioteca y logros

Arquitectura

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).

Alcance del MVP

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.

Estado actual

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).

Estructura del repositorio

.
├── 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.

Ejecutar el proyecto

Para el flujo completo (lectura, voz y evaluación con Gemma) se necesitan dos partes corriendo: el servicio edge y la app móvil.

Servicio edge

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 --reload

Aplicación móvil

Requiere 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 run

Desde 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

Principios pedagógicos y de seguridad

  • 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.

Tecnologías

  • 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: SharedPreferences para perfil y progreso, almacenados en el dispositivo.

Hackathon

YachAI participa en Build with Gemma — GDG Lima AI Competition, dentro de los ejes:

  1. Local AI & Edge Intelligence.
  2. AI for Social Impact.
  3. 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.

Limitaciones

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.

Equipo

  • 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.

Licencia

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).

Footnotes

  1. MINEDU — PISA 2022: el Perú mantiene sus resultados en las competencias de lectura y ciencia

  2. INEI — Uso de Internet en Perú alcanza el 79,9 %: crece la conectividad en áreas rurales

About

Tutor de comprensión lectora con IA 100% local (Gemma) para primaria, sin depender de internet.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages