Automatización de Reseñas con Amazon Bedrock Flows y Claude 3.5

Tabla de Contenidos

  1. La Potencia de los Modelos Generativos en los Flujos de Trabajo
  2. ¿Qué es Amazon Bedrock Flows?
    1. Tipos de Nodos Disponibles en Bedrock Flows
      1. Nodos de Lógica
      2. Nodos de Orquestación
      3. Nodos de Código y Datos
      4. Nodos de Servicios IA
  3. Paso a Paso: Creando un Flujo de Trabajo con Amazon Bedrock Flows
    1. Paso 1: Configuración del Entorno
    2. Paso 2: Creación del Flujo en Amazon Bedrock
    3. Paso 3: Diseñando el Flujo
      1. Configuración de los Nodos
    4. Paso 4: Pruebas y Validación
    5. Paso 5: Implementación en Producción
  4. Conclusión: Automatización con Modelos Generativos y Bases de Conocimiento

La Potencia de los Modelos Generativos en los Flujos de Trabajo

En el mundo del marketing digital, la generación de reseñas de productos es una tarea crítica que consume tiempo y recursos. Con Amazon Bedrock Flows, ahora es posible automatizar este proceso utilizando modelos generativos de lenguaje (LLMs) como Claude 3.5 Sonnet, junto con bases de conocimiento y funciones Lambda para enriquecer el contenido.

En este artículo, te mostraré cómo construir un flujo de trabajo que:

  1. Recupera comentarios de clientes desde una base de conocimiento.
  2. Utiliza un modelo generativo para crear reseñas de productos basadas en esos comentarios.
  3. Almacena las reseñas generadas en un bucket de S3 para su posterior uso.

¿Qué es Amazon Bedrock Flows?

Amazon Bedrock Flows es una funcionalidad de Amazon Bedrock que permite crear flujos de trabajo automatizados y personalizados utilizando modelos de lenguaje generativo (LLMs) y otros servicios de AWS. Con Bedrock Flows, puedes diseñar flujos que integren múltiples pasos, como la recuperación de datos desde una base de conocimiento, la generación de contenido con modelos de lenguaje, y el almacenamiento de resultados en servicios como S3.

Los flujos de trabajo en Bedrock Flows se construyen utilizando nodos, que representan tareas específicas. Por ejemplo:

  • Nodo de Entrada (Flow Input Node): Recibe los datos iniciales del usuario.
  • Nodo de Base de Conocimiento (Knowledge Base Node): Consulta una base de conocimiento para recuperar información relevante.
  • Nodo de Modelo Generativo (Prompt Node): Utiliza un modelo de lenguaje para generar contenido basado en los datos proporcionados.
  • Nodo de Almacenamiento en S3 (S3 Storage Node): Almacena los resultados en un bucket de S3.
  • Nodo de Salida (Flow Output Node): Devuelve los resultados al usuario.

Estos nodos se conectan entre sí para formar un flujo de trabajo completo, lo que permite automatizar tareas complejas de manera eficiente y escalable.

🔍 ProTip: Al diseñar flujos de trabajo en Bedrock, siempre comienza con un flujo simple y luego agrega complejidad gradualmente. Esto te permitirá identificar y corregir errores en etapas tempranas.

Tipos de Nodos Disponibles en Bedrock Flows

Amazon Bedrock Flows ofrece una variedad de nodos que podemos clasificar en cuatro categorías principales:

Nodos de Lógica

  • Collector: Permite recolectar y agregar resultados de operaciones iterativas.
  • Condition: Implementa lógica condicional para ramificar el flujo basado en criterios específicos.
  • Iterator: Facilita el procesamiento iterativo de colecciones de datos.

Nodos de Orquestación

  • Agents: Integra agentes de IA para tareas complejas y conversacionales.
  • Prompts: Gestiona interacciones con modelos de lenguaje mediante prompts estructurados.

Nodos de Código y Datos

  • Lambda Function: Ejecuta funciones Lambda para procesamiento personalizado.
  • Knowledge Base: Consulta bases de conocimiento para recuperar información contextual.
  • S3 Storage/Retrieval: Maneja operaciones de almacenamiento y recuperación en S3.

Nodos de Servicios IA

  • Lex: Integra capacidades de procesamiento de lenguaje natural mediante Amazon Lex.

Tipos de Nodos Disponibles Figura 1: Catálogo completo de nodos disponibles en Bedrock Flows.

💡 ProTip: La elección de los nodos adecuados y su combinación es clave para crear flujos eficientes. Empieza con los nodos más básicos y añade complejidad según sea necesario.

Paso a Paso: Creando un Flujo de Trabajo con Amazon Bedrock Flows

Paso 1: Configuración del Entorno

Antes de comenzar, asegúrate de tener lo siguiente:

  1. Acceso a la consola de AWS con permisos para Amazon Bedrock.
  2. Una base de conocimiento en Amazon Bedrock Knowledge Bases, que contenga comentarios de clientes sobre productos.
  3. Un bucket de S3 para almacenar las reseñas generadas.
  4. Un modelo generativo (por ejemplo, Claude 3.5 Sonnet) habilitado en tu cuenta de Bedrock.

🔍 ProTip: Asegúrate de que tu base de conocimiento esté bien estructurada y contenga datos relevantes. La calidad de los datos de entrada afectará directamente la calidad de las reseñas generadas.


Paso 2: Creación del Flujo en Amazon Bedrock

  1. Accede a la consola de Amazon Bedrock y selecciona Flows en el menú de navegación.
  2. Haz clic en Create Flow y asigna un nombre y descripción a tu flujo (por ejemplo, “Generacion_de_Resenas_de_Productos”).
  3. Selecciona un rol de servicio con los permisos necesarios para acceder a Bedrock, S3 y Lambda.

Creación de un flujo Figura 2: Configuración inicial del flujo en Amazon Bedrock

🔍 ProTip: Al crear el flujo, utiliza un nombre descriptivo que refleje su propósito. Esto facilitará la gestión y el mantenimiento del flujo en el futuro.


Paso 3: Diseñando el Flujo

Nuestro flujo constará de los siguientes nodos:

  1. Nodo de Entrada (Flow Input Node): Recibe los parámetros iniciales, como el ID del producto.
  2. Nodo de Base de Conocimiento (Knowledge Base Node): Recupera los comentarios de clientes relacionados con el producto.
  3. Nodo de Modelo Generativo (Prompt Node): Utiliza un modelo generativo para crear una reseña basada en los comentarios.
  4. Nodo de Almacenamiento en S3 (S3 Storage Node): Almacena la reseña generada en un bucket de S3.
  5. Nodo de Salida (Flow Output Node): Devuelve la reseña generada.

Visualmente, tenemos lo siguiente:

Creación de un flujo Figura 3: Arquitectura del flujo de procesamiento de reseñas.

Configuración de los Nodos

  • Nodo de Entrada:
    Configura el nodo de entrada para recibir un objeto JSON con el ID del producto.
{
  "productId": "B01EXAMPLE1"
}
  • Nodo de Base de Conocimiento:
    Configura el nodo para consultar la base de conocimiento y recuperar los comentarios relacionados con el producto. Usa una expresión como $.data.productId para extraer el ID del producto.

Para su referencia, nuestra base de conocimiento consta de entradas similares a esta.

{
  "productId": "B01EXAMPLE1",
  "reviewText": "Excelente producto, muy resistente...",
  "rating": 5,
  "reviewDate": "2024-01-15",
  "verifiedPurchase": true
}

💡 Nota: Las expresiones siguen la sintaxis JsonPath. Por ejemplo, $.data.productId extrae el valor de productId del objeto de entrada.

Es importante mencionar que la salida del nodo dependerá del modo que seleccionemos:

  • Con “Return retrieved results”: devuelve un array de los resultados encontrados
  • Con “Generate responses”: devuelve una respuesta generada por el modelo que seleccionemos

Para nuestro ejercicio; solo deseamos que nos regrese los datos encontrados.

Creación del Nodo de Base de Conocimiento Figura 4: Configuración del Nodo de Base de Conocimiento

  • Nodo de Modelo Generativo (Prompt Node):
    Configura el nodo para utilizar un modelo generativo (por ejemplo, Claude 3.5 Sonnet) y generar una reseña basada en los comentarios recuperados. En mi ejemplo use este prompt:
Como experto en análisis de productos, analiza las siguientes reseñas y genera una 
evaluación detallada.

RESEÑAS:
{{retrievalResults}}

ESTRUCTURA REQUERIDA:
1. Resumen general de opiniones (2-3 oraciones)
2. Aspectos positivos mencionados frecuentemente (3-4 puntos)
3. Puntos de mejora señalados por los usuarios (2-3 puntos)
4. Conclusión y recomendación final basada en las calificaciones y comentarios

TONO: Profesional, objetivo y enfocado en datos concretos de las reseñas.
IMPORTANTE: Basa tu análisis únicamente en la información proporcionada en las reseñas.

Como ves en la imagen, es importante indicar que el dato de entrada es de tipo array.

Configuración del Prompt Figura 5: Estructura del prompt para el análisis de reseñas

  • Nodo de Almacenamiento en S3:
    Configura el nodo para almacenar la reseña generada en un bucket de S3. Usa una expresión como $.data.productId para extraer el identificador del producto y usarlo como nuestro objectKey y su contenido sería la respuesta de nuestro modelo.

    Configuración del Nodo S3 Figura 6: Configuración de almacenamiento en S3

  • Nodo de Salida:
    Configura el nodo de salida para devolver el URI del archivo en S3.


Paso 4: Pruebas y Validación

Una vez configurado el flujo, es hora de probarlo:

  1. Haz clic en Test Flow en la consola de Amazon Bedrock.
  2. Introduce el siguiente JSON como entrada:
{
  "productId": "B01EXAMPLE1"
}
  1. Ejecuta el flujo y verifica que la reseña se genere correctamente y se almacene en S3.

Si vemos las trazas; encontramos un detalle de cada paso que se siguio en el flujo. Trazabilidad Figura 7: Trazabilidad y monitoreo del flujo

Al validar por ejemplo la salida del nodo de prompt, podemos ver el contenido generado por Sonnet dadas las instrucciones brindadas y reseñas encontradas. Salida Figura 8: Salida del Prompt

🔍 ProTip: Durante las pruebas, utiliza diferentes IDs de producto para asegurarte de que el flujo maneje correctamente diversos escenarios.


Paso 5: Implementación en Producción

Cuando estés satisfecho con el flujo, puedes implementarlo en producción:

  1. Crea una versión del flujo.
  2. Asocia un alias a la versión.
  3. Configura tu aplicación para invocar el flujo utilizando el alias.

Conclusión: Automatización con Modelos Generativos y Bases de Conocimiento

Amazon Bedrock Flows es una herramienta poderosa para automatizar procesos empresariales complejos, especialmente cuando se combina con modelos generativos y bases de conocimiento. En este artículo, hemos visto cómo crear un flujo de trabajo que genera reseñas de productos automáticamente a partir de comentarios de clientes, utilizando Claude 3.5 Sonnet y una base de conocimiento.

Este enfoque no solo ahorra tiempo, sino que también mejora la calidad del contenido generado, ya que los modelos generativos pueden producir reseñas más atractivas y personalizadas.

🚀 ProTip Final: Antes de implementar un flujo de trabajo en producción, realiza pruebas exhaustivas con diferentes tipos de consultas. Esto te permitirá identificar y corregir posibles fallos antes de que afecten a los usuarios finales.

¿Has utilizado Amazon Bedrock Flows en tus proyectos? ¡Comparte tus experiencias en los comentarios y no dudes en preguntar si tienes alguna duda sobre la implementación!

Escrito por

Gerardo Arroyo Arce

Arquitecto de Soluciones AWS certificado x10 con pasión por compartir conocimiento. Como miembro activo de AWS Community Builders, ex-AWS Ambassador y AWS User Group Leader, me dedico a construir puentes entre la tecnología y las personas. Desarrollador Java de corazón y consultor independiente, llevo la arquitectura cloud más allá de la teoría a través de conferencias internacionales y soluciones del mundo real. Mi curiosidad insaciable por aprender y compartir me mantiene en constante evolución junto a la comunidad tech.

Inicia la conversación