DEV Community

Cover image for Automatización de Reseñas con Amazon Bedrock Flows y Claude 3.5
Gerardo Arroyo for AWS Community Builders

Posted on • Originally published at gerardo.dev

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

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.

{: .q-left }

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

{: .q-left }

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

{: .q-left }

🔍 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

{: .q-left }

🔍 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"
}
Enter fullscreen mode Exit fullscreen mode
  • 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
}
Enter fullscreen mode Exit fullscreen mode

{: .q-left }

💡 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.
Enter fullscreen mode Exit fullscreen mode

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"
}
Enter fullscreen mode Exit fullscreen mode
  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

{: .q-left }

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

{: .q-left }

🚀 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!

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Best Practices for Running  Container WordPress on AWS (ECS, EFS, RDS, ELB) using CDK cover image

Best Practices for Running Container WordPress on AWS (ECS, EFS, RDS, ELB) using CDK

This post discusses the process of migrating a growing WordPress eShop business to AWS using AWS CDK for an easily scalable, high availability architecture. The detailed structure encompasses several pillars: Compute, Storage, Database, Cache, CDN, DNS, Security, and Backup.

Read full post