Integración del SDK de OpenAI en Node.js para automatizar contenido
Clase 31 de 35 • Curso de Backend con NestJS
Resumen
La inteligencia artificial no solo debe aprovecharse en el desarrollo, sino también ofrecer funcionalidades útiles a los usuarios dentro de aplicaciones. En este contenido, se explica cómo incorporar la generación automática de resúmenes e imágenes para artículos de blog utilizando el SDK de OpenAI en Node.js.
¿Cómo conectar el SDK de OpenAI con Node.js para funciones avanzadas?
La integración comienza accediendo al sitio platform.openai y generando una API Key. Es fundamental resguardar esta clave en una variable de entorno o un servicio de secretos como Bitgarden para protegerla, sobre todo si cambias de computadora o plataforma.
El SDK oficial se instala con:
npm install openai
Se sigue el patrón de programación modular en Next.js, creando un módulo específico llamado AI donde se centralizan los servicios de inteligencia artificial. Dentro de este módulo, es recomendable crear un servicio como OpenAI Service
, donde se arma la instancia de OpenAI y se extrae la API Key desde las configuraciones.`
¿Qué módulos y buenas prácticas se deben seguir en el diseño del sistema?
- Crear un módulo AI que concentre diversas integraciones, como OpenAI, Gemini, Mistral, entre otras.
- Implementar servicios dentro de cada módulo para mantener la lógica separada y reutilizable.
- Almacenar las API Keys de manera segura y accesible solo para los procesos requeridos.
El servicio para OpenAI expone métodos como generateSummary
y la generación de imágenes, retornando promesas que procesan el texto y devuelven URLs generadas.
¿Cómo automatizar la generación de resumen e imagen al publicar un post?
En la lógica del módulo de publicaciones (post), se importa AI Module para hacer uso de los servicios. Se crea un endpoint tipo publish
, protegido por sesión y válido solo para el usuario dueño del artículo.
Antes de publicar, el sistema verifica:
- El usuario es el autor del artículo.
- El artículo tiene título, contenido y al menos una categoría.
Al cumplir estas condiciones:
- Se genera el resumen usando el contenido del post y, si es necesario, se ajusta el prompt para limitar la extensión del resumen (por ejemplo, 255 caracteres como máximo).
- Se genera una imagen relevante mediante el prompt específico para el tema del artículo.
- Se actualiza el estado
isDraft
afalse
y se guardan tanto el resumen como el cover image generados.
¿Qué validaciones y retos comunes surgen al integrar AI en publicaciones?
Algunos puntos clave que se destacan:
- Las respuestas de modelos AI pueden exceder límites de caracteres definidos por la base de datos. Se debe ajustar el prompt o migrar la base para evitar errores.
- La generación de imágenes requiere validación adicional para asegurar que la API retorna la URL deseada.
- Las tareas asociadas a AI pueden tardar más tiempo, por lo que es necesario supervisar logs y errores en el servidor.
Se recomienda probar con ejemplos prácticos, como pedirle a ChatGPT un artículo largo, crear el artículo en el sistema y al publicar, verificar que se generen correctamente el resumen y la imagen.
La integración permite así que el usuario obtenga resúmenes automáticos y una imagen temática, mejorando la experiencia y ahorrando tiempo en la creación de blogs. ¿Te animas a probar estas funcionalidades en tu proyecto? ¡Comparte tus experiencias o dudas!