Esta solução contém um back-end sem servidor e um aplicativo front-end ReactJS que cria descrições de produtos a partir de imagens e entrada de texto, aprimora e traduz descrições de produtos usando o novo serviço gerenciado de IA generativa, Amazon Bedrock.
As empresas de varejo geralmente têm milhares ou milhões de produtos, todos os quais exigem descrições precisas e eficazes. Os varejistas geralmente possuem metadados ou imagens desses produtos que podem ser fornecidos como entradas para modelos generativos de IA para acelerar significativamente o processo de criação de descrições de produtos.
Você é responsável pelo custo dos serviços da AWS usados durante a execução deste Guia. Em novembro de 2023, o custo para executar este Guia com as configurações padrão no Leste dos EUA (Norte da Virgínia) era de aproximadamente US$ 86 por mês para o processamento de 1.000 produtos por mês.
Esta orientação inclui os serviços AWS Rekognition, Bedrock, Cognito, Lambda, API Gateway e CloudWatch com os seguintes custos:
Conservadoramente (errando por superestimar), usando esta solução para gerar descrições de produtos com base em imagens de entrada 1000 vezes por mês (incluindo a geração de traduções para espanhol, alemão e francês) e assumindo um pior caso de 30s por invocação de função Lambda e 1000 tokens de entrada/saída para todas as chamadas para os modelos Claude Instant e Jurassic, os custos seriam aproximadamente os seguintes:
Você precisará instalar todos os pré-requisitos em sua máquina local:
cdk
) conforme documentado aqui. Você também precisará executar cdk bootstrap
se ainda não tiver usado o CDK em sua conta, conforme discutido aqui. NOTA: O Docker deve estar instalado e em execução . Você pode garantir que o daemon do Docker esteja em execução garantindo que um comando como docker ps
seja executado sem erros. Se nenhum contêiner estiver em execução, docker ps
deverá retornar uma lista vazia de contêineres como esta:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Crie um ambiente EC2 no AWS Cloud9, execute a instância EC2 em uma sub-rede pública e anote seu endereço IPv4 público (#cloud9_ec2_ip).
Redimensione o volume do EBS que o ambiente (criado na Etapa 1) usa para pelo menos 20 GB. Ele vem com 10 GB para t2.micro por padrão.
Clone o repositório:
git clone https://github.com/aws-solutions-library-samples/guidance-for-generating-product-descriptions-with-bedrock.git
cd para a pasta do repositório:
cd guidance-for-generating-product-descriptions-with-bedrock
(Opcional) crie um novo virtualenv Python para dependências específicas do projeto:
python -m venv .env && source .env/bin/activate
Instale as dependências do CDK:
pip install -r deployment/requirements.txt
Bootstrapping para AWS CDK, caso ainda não tenha sido feito:
cd deployment && cdk bootstrap
Implante o back-end:
cd deployment && cdk deploy
cd de volta para a raiz do projeto:
cd ..
Crie um usuário inicial do Cognito:
deployment/create-user.sh <>
Atualize config.js
com os valores apropriados das saídas da pilha CDK. Isso pode ser feito automaticamente executando
deployment/update-config.sh
Instale dependências de front-end:
cd source/frontend && npm install
Execute o aplicativo cliente de amostra e anote o número da porta (#web_port) que o webpack escuta, por exemplo. 8080.
npm start
Abra os grupos de segurança do EC2 criados na Etapa 1, adicione uma regra de entrada, que permite TCP personalizado, intervalo de portas #web_port, fonte “Meu IP” e, em seguida, salvar regras.
A implantação deverá ser bem-sucedida se todos os comandos acima forem concluídos sem erros. Você pode navegar pelos recursos de back-end criados navegando até o serviço CloudFormation no Console AWS, encontrando a pilha chamada LambdaStack
e navegando em seus recursos.
Você pode experimentar o aplicativo da web de demonstração seguindo estas etapas:
Consulte a página do produto Bedrock para obter mais recursos sobre como usar o Amazon Bedrock.
A infraestrutura provisionada pode ser excluída executando o seguinte comando:
cd deployment && cdk destroy
Considerações e limitações adicionais