Repository navigation
Home
EMMA es una tutora de inglés conversacional local-first para profesionales de TI. Pone al aprendiz en una escena de trabajo (una daily, un code review, una entrevista, un incidente en producción), conversa con él 100 % en inglés hasta cerrar la escena, anota los errores sin interrumpir y al final entrega un reporte con lección, repaso y próximo escenario. La IA corre en el equipo del usuario (Gemma 4 sobre WebGPU); la nube es opcional y explícita.
Es el Trabajo Integrador de la Maestría en Computación para el Desarrollo de Aplicaciones Inteligentes (CODING) de la Escuela de Ingeniería de Sistemas y Computación, Universidad del Valle.
- Estudiantes: Oscar Andrés Osorio (oscar.andres.osorio@correounivalle.edu.co) · Raúl Alzate (raul.alzate@correounivalle.edu.co)
- Asesor: Raúl E. Gutiérrez de Piñerez Reyes, Ph.D. (raul.gutierrez@correounivalle.edu.co) — Docente Asociado, profesor GUIA (Grupo de Investigación de Inteligencia Artificial), área de Procesamiento de Lenguaje Natural, EISC.
Ver Contexto académico.
| Enlace | Qué es |
|---|---|
| https://github.com/raalzate/emma-desktop | Código, issues (artefactos SDD), releases |
| https://raalzate.github.io/emma-desktop/ | Vitrina pública con capturas y descarga |
| https://github.com/raalzate/emma-desktop/releases | Instaladores macOS · Windows · Linux |
Qué es y por qué
- Contexto académico — la maestría, el trabajo integrador y cómo EMMA responde a sus objetivos.
- Alcance y producto — problema, objetivo, alcance, funcionalidades, hoja de ruta y releases.
- Pedagogía y currículo — el método del libro fuente, CEFR, repaso espaciado, escenarios y prácticas.
Cómo está hecha
- Arquitectura — capas + hexagonal, procesos Electron, C4 (contexto y contenedores), persistencia e IPC.
- IA local e híbrida — router de motores, Gemma/LiteRT‑LM, Whisper, voz local Kokoro, presupuestos de tokens, privacidad.
- Flujos agénticos — el patrón «el LLM juzga, el código decide», onboarding ReAct, turno de chat, juez del turno, cierre y feedback.
- Diagramas BPMN — las vistas de proceso del producto (turno de chat, ruta y progresión, repaso SRS, voz y pronunciación, onboarding, simulación y feedback).
Cómo se trabaja
- Arnés y proceso de desarrollo — constitución, gate único, hooks, subagentes, flujo SDD en issues, ciclo de lecciones.
- Release y distribución — workflows de CI y release, firma, auto‑update, vitrina.
- Estado del proyecto — veredicto verificado, señales del gate, deuda conocida.
Hacia dónde va
- Propuesta de Machine Learning — SRS adaptativo, trazado de conocimiento, bandit de recomendación, pronunciación fonémica, destilación.
interface / components ──► application ──► domain
(React, Electron, IO) (casos de uso) (reglas puras, puertos)
│ ▲
└──► infrastructure ──┘ (store JSON por IPC, adaptadores de IA)
Las flechas solo apuntan hacia adentro. El dominio no conoce React, Electron ni red: recibe puertos (LlmGenerate, repositorios) por inyección de dependencias. Ese es el principio que hace posible probar 2090 comportamientos sin un solo modelo cargado.
Electron 39 · Next.js 15 (App Router, export estático) · React 18 · TypeScript 5 estricto · Tailwind 3 + shadcn/Radix · Gemma 4 .litertlm vía @litert-lm/core (WebGPU) · Whisper vía @huggingface/transformers · Kokoro‑82M vía kokoro-js en Web Worker WASM (TTS local + karaoke, Web Speech de respaldo) · Vitest · pnpm.
EMMA Desktop · Trabajo Integrador · Maestría CODING (EISC, Universidad del Valle) · Oscar Andrés Osorio y Raúl Alzate · Asesor: Raúl E. Gutiérrez de Piñerez Reyes, Ph.D. · Código en raalzate/emma-desktop