Это решение содержит бессерверную серверную часть и интерфейсное приложение ReactJS, которое создает описания продуктов на основе изображений и текстового ввода, расширяет и переводит описания продуктов с помощью нового управляемого генеративного сервиса искусственного интеллекта Amazon Bedrock.
Розничные предприятия часто имеют многие тысячи или миллионы продуктов, каждый из которых требует точных и эффективных описаний. У ритейлеров часто уже есть метаданные или изображения этих продуктов, которые можно использовать в качестве входных данных для генеративных моделей искусственного интеллекта, что значительно ускоряет процесс создания описаний продуктов.
Вы несете ответственность за стоимость сервисов AWS, используемых при выполнении настоящего Руководства. По состоянию на ноябрь 2023 года стоимость выполнения данного руководства с настройками по умолчанию на востоке США (Северная Вирджиния) составляет примерно 86 долларов США в месяц при обработке 1000 продуктов каждый месяц.
Это руководство включает в себя сервисы AWS Rekognition, Bedrock, Cognito, Lambda, API Gateway и CloudWatch со следующей стоимостью:
Консервативно (ошибаясь в сторону переоценки), используя это решение для создания описаний продуктов на основе входных изображений 1000 раз в месяц (включая создание переводов на испанский, немецкий и французский языки) и предполагая, что в худшем случае 30 секунд на вызов функции Lambda и 1000 токенов ввода/вывода для всех вызовов моделей Claude Instant и Jurassic, стоимость будет примерно следующей:
Вам необходимо установить все необходимые компоненты на локальный компьютер:
cdk
), как описано здесь. Вам также потребуется запустить cdk bootstrap
, если вы раньше не использовали CDK в своей учетной записи, как описано здесь. ПРИМЕЧАНИЕ. Docker должен быть установлен и запущен . Вы можете убедиться, что демон Docker работает, проверив, что такая команда, как docker ps
выполняется без ошибок. Если ни один контейнер не запущен, docker ps
должен вернуть пустой список контейнеров, например:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Создайте среду EC2 в AWS Cloud9, запустите экземпляр EC2 в общедоступной подсети и запишите его общедоступный IPv4-адрес (#cloud9_ec2_ip).
Измените размер тома EBS, который использует среда (созданная на шаге 1), как минимум до 20 ГБ. По умолчанию для t2.micro имеется 10 ГБ.
Клонировать репо:
git clone https://github.com/aws-solutions-library-samples/guidance-for-generating-product-descriptions-with-bedrock.git
перейдите в папку репо:
cd guidance-for-generating-product-descriptions-with-bedrock
(Необязательно) создайте новую виртуальную среду Python для зависимостей, специфичных для проекта:
python -m venv .env && source .env/bin/activate
Установите зависимости CDK:
pip install -r deployment/requirements.txt
Начальная загрузка для AWS CDK, если это не было сделано ранее:
cd deployment && cdk bootstrap
Разверните бэкэнд:
cd deployment && cdk deploy
вернитесь в корень проекта:
cd ..
Создайте первоначального пользователя Cognito:
deployment/create-user.sh <>
Обновите config.js
, указав соответствующие значения из выходных данных стека CDK. Это можно сделать автоматически, запустив
deployment/update-config.sh
Установите зависимости внешнего интерфейса:
cd source/frontend && npm install
Запустите пример клиентского приложения и запишите номер порта (#web_port), который прослушивает веб-пакет, например. 8080.
npm start
Откройте группы безопасности EC2, созданные на шаге 1, добавьте правило для входящего трафика, которое разрешает пользовательский TCP, диапазон портов #web_port, источник «Мой IP», затем сохраните правила.
Развертывание должно пройти успешно, если все приведенные выше команды выполняются без ошибок. Вы можете просмотреть созданные серверные ресурсы, перейдя к сервису CloudFormation в консоли AWS, найдя стек с именем LambdaStack
и просмотрев его ресурсы.
Вы можете попробовать демонстрационное веб-приложение, выполнив следующие действия:
Дополнительные ресурсы по использованию Amazon Bedrock см. на странице продукта Bedrock.
Подготовленную инфраструктуру можно удалить, выполнив следующую команду:
cd deployment && cdk destroy
Дополнительные соображения и ограничения