# 2024-06-07 · Integración Gemini para imágenes en Lectura global ## Backend - Creado módulo `GeminiService` que usa el modelo `gemini-2.5-flash-image` de Gemini para generar ilustraciones infantiles. - Nuevo `GlobalWordsService` lee `content/palabras-globales.json`, precarga imágenes en `content/generated/global-words/` y expone endpoints REST (`/global-words`). - Endpoint `/global-words/:slug/image` entrega/auto-genera la imagen cuando el front la solicita. - Se habilitó CORS en Nest para que la webapp consuma el API desde `http://localhost:4173` u otros orígenes configurables. - Si Gemini rechaza la petición (por acceso al modelo) el servicio genera un placeholder SVG brillante y lo cachea, garantizando que Milo siempre vea una figura. ## Frontend - `Lectura global` ahora consume imágenes reales desde el backend y ofrece matching palabra-imagen con feedback inmediato. - Se agregó `VITE_API_BASE_URL` (ver `app/.env.example`) y se cachean URLs por palabra para evitar descargas repetidas. - Se mantiene el centro de ayuda con indicaciones prácticas. ## Uso 1. En una terminal: `cd backend && npm run start:dev` (se precargarán imágenes en background automáticamente). 2. En otra terminal: `cd app && npm run dev -- --host 0.0.0.0 --port 4173` y abrir `http://localhost:4173`. ## Pendientes - [ ] Manejar colas/concurrencia para lotes grandes (usar BullMQ u otra cola). - [ ] Guardar metadatos de generación (prompt, versión, timestamps) en BD. - [ ] Añadir endpoint para verificar progreso del prefetch y mostrarlo en el dashboard. - [ ] Validar acceso a los modelos de imagen en la cuenta de Gemini (si `gemini-2.5-flash-image` no está habilitado se seguirán viendo placeholders hasta que Google otorgue acceso).