Esta solución contiene un backend sin servidor y una aplicación front-end ReactJS que crea descripciones de productos a partir de imágenes e ingreso de texto, mejora y traduce descripciones de productos utilizando el nuevo servicio de IA generativa administrada, Amazon Bedrock.
Las empresas minoristas suelen tener miles o millones de productos, todos los cuales requieren descripciones precisas y efectivas. Los minoristas suelen tener metadatos o imágenes existentes para estos productos que pueden proporcionarse como entradas para modelos generativos de IA para acelerar enormemente el proceso de creación de descripciones de productos.
Usted es responsable del costo de los servicios de AWS utilizados durante la ejecución de esta Guía. A partir de noviembre de 2023, el costo de ejecutar esta Guía con la configuración predeterminada en el este de EE. UU. (Norte de Virginia) es de aproximadamente $86 por mes para procesar 1000 productos cada mes.
Esta guía incluye los servicios de AWS Rekognition, Bedrock, Cognito, Lambda, API Gateway y CloudWatch con los siguientes costos:
De manera conservadora (pecando en sobreestimar), usar esta solución para generar descripciones de productos basadas en imágenes de entrada 1000 veces al mes (incluida la generación de traducciones al español, alemán y francés) y asumir el peor de los casos de 30 segundos por invocación de función Lambda y 1000 tokens de entrada/salida para todas las llamadas a los modelos Claude Instant y Jurassic, los costos serían aproximadamente los siguientes:
Deberá instalar todos los requisitos previos en su máquina local:
cdk
) como se documenta aquí. También necesitarás ejecutar cdk bootstrap
si no has usado el CDK antes en tu cuenta como se explica aquí. NOTA: Docker debe estar instalado y ejecutándose . Puede asegurarse de que el demonio Docker se esté ejecutando asegurándose de que un comando como docker ps
se ejecute sin errores. Si no se están ejecutando contenedores, entonces docker ps
debería devolver una lista vacía de contenedores como esta:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Cree un entorno EC2 en AWS Cloud9, inicie la instancia EC2 en una subred pública y escriba su dirección IPv4 pública (#cloud9_ec2_ip).
Cambie el tamaño del volumen de EBS que utiliza el entorno (creado en el paso 1) a al menos 20 GB. Viene con 10 GB para t2.micro de forma predeterminada.
Clona el repositorio:
git clone https://github.com/aws-solutions-library-samples/guidance-for-generating-product-descriptions-with-bedrock.git
cd a la carpeta del repositorio:
cd guidance-for-generating-product-descriptions-with-bedrock
(Opcional) cree un nuevo entorno virtual de Python para dependencias específicas del proyecto:
python -m venv .env && source .env/bin/activate
Instalar dependencias de CDK:
pip install -r deployment/requirements.txt
Bootstrapping para AWS CDK, si no se ha realizado previamente:
cd deployment && cdk bootstrap
Implementar el backend:
cd deployment && cdk deploy
cd de regreso a la raíz del proyecto:
cd ..
Cree un usuario inicial de Cognito:
deployment/create-user.sh <>
Actualice config.js
con los valores apropiados de las salidas de la pila CDK. Esto se puede hacer automáticamente ejecutando
deployment/update-config.sh
Instalar dependencias de interfaz:
cd source/frontend && npm install
Ejecute la aplicación cliente de muestra y escriba el número de puerto (#web_port) que escucha el paquete web, por ejemplo. 8080.
npm start
Abra los grupos de seguridad del EC2 creados en el paso 1, agregue una regla de entrada que permita TCP personalizado, rango de puerto #web_port, fuente "Mi IP" y luego guarde las reglas.
La implementación debería ser exitosa si todos los comandos anteriores se completan sin errores. Puede explorar los recursos de backend creados navegando al servicio CloudFormation en la consola de AWS, buscando la pila denominada LambdaStack
y explorando sus recursos.
Puede probar la aplicación web de demostración siguiendo estos pasos:
Consulte la página del producto Bedrock para obtener más recursos sobre el uso de Amazon Bedrock.
La infraestructura aprovisionada se puede eliminar ejecutando el siguiente comando:
cd deployment && cdk destroy
Consideraciones y limitaciones adicionales