24 lines
1.7 KiB
Markdown
24 lines
1.7 KiB
Markdown
# 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).
|