Entrada

Creando un modelo generativo propio con Genkit y arquitectura orquestada sobre Firebase

Enolisa integra un modelo de IA propio basado en Genkit y Google Gemini para generar recomendaciones y maridajes de vino personalizados, con arquitectura orquestada en Firebase y control total del proceso.

Creando un modelo generativo propio con Genkit y arquitectura orquestada sobre Firebase

Enolisa AI: creando un modelo generativo propio con Genkit y arquitectura orquestada sobre Firebase

Un nuevo modelo de IA aplicado al vino

Enolisa nació como una aplicación para que amantes y entusiastas del vino pudieran tener un lugar seguro y privado donde registrar todos sus vinos y catas. Con el tiempo he querido aportar un valor diferencial y esto me llevó a su evolución reciente donde voy mucho más allá de la gestión de botellas: he construido un modelo de IA propio, capaz de aprender de tus gustos y transformar tus catas en recomendaciones y maridajes únicos, con explicaciones coherentes y personalizadas.

Este modelo no se limita a usar un LLM —está construido sobre una arquitectura completa de generación, validación, enriquecimiento y activación, combinando Genkit, Google Gemini, Firebase Functions v2, PostgreSQL, y prompt engineering avanzado.

El resultado: un flujo de IA gobernado, escalable y auditable, con la precisión de un sommelier profesional y la adaptabilidad de un sistema vivo.


La arquitectura: IA, orquestación y control total

Capas funcionales

Piezas y componentes que he utilizado:

Capa Componente Rol
Generación Genkit + Gemini 2.5 Pro Genera recomendaciones y maridajes estructurados
Orquestación Cloud Functions + Firestore Control de estados, triggers y observabilidad
Enriquecimiento Cloud SQL (PostgreSQL) Normalización e integración con el catálogo global
Activación FCM Push + gestión de notificaciones Mensajes precisos y multilingües
Seguridad Secrets y variables de entorno Sin hardcode, sin fuga de claves
Observabilidad Logging etiquetado (ALERTA_FUNCIONAL / ALERTA_GEMINI) Diagnóstico y trazabilidad granular

Ciclo completo

  1. El módulo de perfil sensorial recibe el contexto sensorial del usuario (idioma, aromas, sabores, gasto medio, histórico).
  2. Construye un prompt dinámico en tiempo real con placeholders inteligentes y políticas de precios condicionales.
  3. Genkit + Gemini generan una salida estructurada (JSON limpio, validado).
  4. El módulo de normalización de recomendaciones enriquece los vinos con datos del catálogo SQL y persiste el lote.
  5. Una vez verificados los datos, gestionNotificaciones activa el push y cierra el proceso con estado COMPLETADO.

Cada paso es auditable, reversible y optimizado para latencia y coste.


IA modular: cómo diseñar un modelo propio sin entrenar desde cero

El modelo de Enolisa no se “entrena” en sentido clásico: se construye y afina dinámicamente con ingeniería de prompt y políticas de contexto. Utilizo Genkit no solo como SDK, sino como capa de abstracción que me permite:

  • Controlar el modelo (Gemini Pro o Flash) según el tipo de tarea.
  • Inyectar conocimiento dinámico y validar coherencia semántica.
  • Modularizar los prompts y aislar componentes reutilizables.
  • Ajustar temperatura, estructura de salida y comportamiento sin alterar el core.

El resultado es un motor de IA propio, gobernado, predecible y expandible.


Ingeniería de prompt: precisión, contexto y autoverificación

Diseño cada prompt de Enolisa como un flujo lógico, no como texto libre. Los principios que aplico:

  • Formato garantizado: responseMimeType: "application/json" y sanitización defensiva.
  • Autoverificación interna: el modelo se autoevalúa para garantizar coherencia.
  • Multilenguaje controlado: salida natural en ES/EN/IT/FR/PT/DE mediante variable dinámica.
  • Instrucciones negativas: prohibición de numeraciones, repeticiones o enumeraciones irrelevantes.
  • Guardrails semánticos: regex y validadores que descartan salidas corruptas.

Esto me permite una generación determinista, auditable y replicable, alineada con estándares de IA responsable.


Genkit Flows: IA como procesos componibles

En Enolisa, uso los flows de Genkit que encapsulan procesos IA reutilizables. Por ejemplo, maridajeFlow define un flujo cerrado que:

  1. Recibe los parámetros sensoriales del vino.
  2. Aplica un modelo Gemini con configuración de salida JSON.
  3. Limpia y valida la respuesta.
  4. Devuelve una estructura con campos fijos (maridaje, categoria, explicacion, receta?, tipoCocina?).

Gracias a esto, cualquier otra función (como recomendarMaridaje o futuras skills de recomendación inversa “platos → vinos”) puede invocar el mismo flujo IA como bloque modular.


Observabilidad y control: IA sin caja negra

Cada paso del ciclo IA genera trazabilidad en Cloud Logging con etiquetas diferenciadas:

Tipo de alerta Descripción Ejemplo
ALERTA_FUNCIONAL Error operativo o validación lógica Datos incompletos, ventana temporal vencida
ALERTA_GEMINI Desviación del modelo JSON inválido, salida sin campos clave

Esto permite medir y corregir con rapidez: se analizan ratios de parse fallido, tokens por prompt, latencia IA y coste total por flujo. La IA deja de ser una caja negra para convertirse en un sistema gobernado y observable.


IA personalizada, no genérica

A diferencia de integrar un LLM genérico, he construido en Enolisa un modelo de comportamiento propio. La IA entiende no solo qué vino recomendar, sino por qué encaja contigo:

  • Analiza tu histórico de catas, aromas y gasto.
  • Adapta la recomendación según temporada y contexto cultural.
  • Genera explicaciones con tono emocional y educativo, no técnico.

Y lo hace manteniendo control operativo y semántico total: ni improvisación, ni azar, ni resultados inconsistentes.


Roadmap de evolución

Próximos pasos ya definidos:

  • Refinamiento automático de prompt con feedback de usuario.
  • Clasificación de perfiles de paladar mediante clustering dinámico.
  • Embeddings para búsqueda inversa (de platos a vinos).
  • Flows compuestos (vino + ocasión + emoción).
  • Optimización de costes basada en análisis token-level.

Cada mejora se apoya en la base sólida ya implementada: Genkit + Firebase + Firestore + Cloud SQL + observabilidad estructurada.


Conclusión

Enolisa no usa IA: es IA aplicada de forma consciente y productiva. Mi modelo en Enolisa, construido sobre Genkit, convierte la experiencia de degustar un vino en un proceso inteligente, trazable y emocionalmente relevante.

Con este desarrollo demuestro que es posible construir un modelo generativo personalizado sin entrenamiento directo, combinando ingeniería de software, arquitectura en la nube y conocimiento profundo de IA aplicada.

Esta entrada está licenciada bajo CC BY 4.0 por el autor.