Cette solution contient un backend sans serveur et une application frontale ReactJS qui crée des descriptions de produits à partir d'images et de saisie de texte, améliore et traduit les descriptions de produits à l'aide du nouveau service d'IA générative géré, Amazon Bedrock.
Les commerces de détail proposent souvent plusieurs milliers, voire millions de produits, qui nécessitent tous des descriptions précises et efficaces. Les détaillants disposent souvent de métadonnées ou d'images existantes pour ces produits qui peuvent être fournies comme entrées dans des modèles d'IA génératifs afin d'accélérer considérablement le processus de création de descriptions de produits.
Vous êtes responsable du coût des services AWS utilisés lors de l'exécution de ce guide. En novembre 2023, le coût d'exécution de ce guide avec les paramètres par défaut dans la région USA Est (Virginie du Nord) était d'environ 86 $ par mois pour le traitement de 1 000 produits chaque mois.
Ces conseils incluent les services AWS Rekognition, Bedrock, Cognito, Lambda, API Gateway et CloudWatch avec les coûts suivants :
De manière prudente (en péchant par excès de surestimation), en utilisant cette solution pour générer des descriptions de produits basées sur des images d'entrée 1 000 fois par mois (y compris en générant des traductions en espagnol, allemand et français), et en supposant un pire des cas de 30 s par appel de fonction Lambda et 1000 jetons d'entrée/sortie pour tous les appels vers les modèles Claude Instant et Jurassic, les coûts seraient approximativement les suivants :
Vous devrez installer tous les prérequis sur votre ordinateur local :
cdk
) comme indiqué ici. Vous devrez également exécuter cdk bootstrap
si vous n'avez jamais utilisé le CDK auparavant dans votre compte, comme indiqué ici. REMARQUE : Docker doit être installé et exécuté . Vous pouvez vous assurer que le démon Docker est en cours d'exécution en vous assurant qu'une commande telle que docker ps
s'exécute sans erreur. Si aucun conteneur n'est en cours d'exécution, alors docker ps
devrait renvoyer une liste vide de conteneurs comme celle-ci :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Créez un environnement EC2 dans AWS Cloud9, lancez l'instance EC2 dans un sous-réseau public et notez son adresse IPv4 publique (#cloud9_ec2_ip).
Redimensionnez le volume EBS que l'environnement (créé à l'étape 1) utilise à au moins 20 Go. Il est livré par défaut avec 10 Go pour t2.micro.
Clonez le dépôt :
git clone https://github.com/aws-solutions-library-samples/guidance-for-generating-product-descriptions-with-bedrock.git
cd dans le dossier du dépôt :
cd guidance-for-generating-product-descriptions-with-bedrock
(Facultatif) créez un nouveau virtualenv Python pour les dépendances spécifiques au projet :
python -m venv .env && source .env/bin/activate
Installez les dépendances du CDK :
pip install -r deployment/requirements.txt
Amorçage pour AWS CDK, si cela n'a pas été fait précédemment :
cd deployment && cdk bootstrap
Déployez le backend :
cd deployment && cdk deploy
revenez à la racine du projet :
cd ..
Créez un utilisateur Cognito initial :
deployment/create-user.sh <>
Mettez à jour config.js
avec les valeurs appropriées des sorties de la pile CDK. Cela peut être fait automatiquement en exécutant
deployment/update-config.sh
Installez les dépendances frontales :
cd source/frontend && npm install
Exécutez l'exemple d'application client et notez le numéro de port (#web_port) que le webpack écoute, par exemple. 8080.
npm start
Ouvrez les groupes de sécurité de l'EC2 créés à l'étape 1, ajoutez une règle entrante, qui autorise le TCP personnalisé, la plage de ports #web_port, la source « Mon IP », puis enregistrez les règles.
Le déploiement devrait réussir si toutes les commandes ci-dessus se terminent sans erreur. Vous pouvez parcourir les ressources backend créées en accédant au service CloudFormation dans la console AWS, en recherchant la pile nommée LambdaStack
et en parcourant ses ressources.
Vous pouvez essayer l'application Web de démonstration en suivant ces étapes :
Consultez la page produit Bedrock pour plus de ressources sur l'utilisation d'Amazon Bedrock.
L'infrastructure provisionnée peut être supprimée en exécutant la commande suivante :
cd deployment && cdk destroy
Considérations et limites supplémentaires