Files
educar/progreso/2024-06-07-gemini-imagenes.md
2025-11-30 03:11:18 +00:00

1.7 KiB

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