| Генеративный конструктор приложений искусственного интеллекта на AWS | ? Запрос функции | ? Отчет об ошибке | Руководство по внедрению |
ПРИМЕЧАНИЕ:
Решение Generative AI Application Builder на AWS (GAAB) предоставляет веб-панель управления для развертывания настраиваемых вариантов использования Generative AI (Gen AI). Эта панель развертывания позволяет клиентам развертывать, экспериментировать и сравнивать различные комбинации вариантов использования модели большого языка (LLM). После того как клиенты успешно настроили и оптимизировали свой вариант использования, они могут запустить развертывание в производство и интегрировать его в свои приложения.
Средство создания приложений Generative AI публикуется под лицензией Apache 2.0 и предназначено как для новичков, так и для опытных пользователей, которые хотят экспериментировать и реализовывать различные варианты использования Gen AI. В решении используется программное обеспечение с открытым исходным кодом (OSS) LangChain для настройки подключений к выбранным вами моделям большого языка (LLM) для различных вариантов использования. Первый выпуск GAAB позволяет пользователям развертывать варианты использования чата, которые позволяют запрашивать корпоративные данные пользователей в пользовательском интерфейсе (UI) в стиле чат-бота, а также API для поддержки пользовательских реализаций для конечных пользователей.
Некоторые особенности GAAB:
Подробное руководство по внедрению решения см. в документе The Generative AI Application Builder на AWS.
Существует три уникальных профиля пользователя, которые упоминаются в пошаговом руководстве по решению ниже:
ПРИМЕЧАНИЕ:
Когда пользователь DevOps развертывает панель развертывания, в учетной записи AWS развертываются следующие компоненты:
Note: Although the Deployment dashboard can be launched in most AWS regions, the deployed use cases have some restrictions based on service availability. See Supported AWS Regions in the Implementation Guide for more details.
После развертывания панели развертывания пользователь-администратор может развернуть несколько стеков вариантов использования. Когда стек вариантов использования развертывается пользователем с правами администратора, в учетной записи AWS развертываются следующие компоненты:
ПРИМЕЧАНИЕ:
Существует два варианта развертывания в вашей учетной записи AWS:
cdk deploy
Ниже приведены предварительные условия для сборки и локального развертывания:
ensurepip
и pip
; однако, если вы работаете в среде без этих пакетов, вам придется установить их вручную (например, минимальный образ Docker). Подробности смотрите в руководстве по установке pip. Примечание. Настройте интерфейс командной строки AWS, используя свои учетные данные AWS, или экспортируйте их в терминальную среду CLI. Если учетные данные недействительны или срок их действия истек, запуск cdk deploy
приведет к ошибке.
Кроме того, если вы не запускали cdk bootstrap
в этой учетной записи и регионе, следуйте инструкциям здесь, чтобы выполнить загрузку cdk как однократный процесс, прежде чем переходить к следующим шагам.
После клонирования репозитория из GitHub выполните следующие шаги:
ПРИМЕЧАНИЕ:
cdk-asset-bucket
в source/infrastructure/cdk.json
. Значением этого свойства должно быть имя корзины, созданное процессом cdk bootstrap
. Если имя корзины не настроено, процесс cdk bootstrap
создает корзину в следующем формате: cdk-hnb659fds-assets--
(где находится идентификатор учетной записи AWS, в которой развертывается решение). конкретное). В настоящее время в репо установлено следующее значение: "cdk-asset-bucket": "cdk-hnb659fds-assets-123456789012-us-east-1"
cd /source/infrastructure
npm install
npm run build
cdk synth
cdk deploy DeploymentPlatformStack --parameters AdminUserEmail=
Примечание. Поскольку cdk deploy
выполняется с именем стека, оно не синтезирует другие стеки CloudFormation в папке инфраструктуры. Чтобы гарантировать, что все стеки синтезируются на основе изменений кода инфраструктуры, обязательно включите cdk synth
. Полный список команд cdk, которые можно запустить, см. в разделе Команды Toolkit.
Чтобы панель развертывания могла развертывать варианты использования чата LLM, вам дополнительно потребуется разместить синтезированные ресурсы CDK (такие как лямбда-выражения, синтезированные шаблоны CloudFormation и т. д.) из каталога source/infrastructure/cdk.out
в настроенную корзину S3 в вашей учетной записи. откуда эти ресурсы будут взяты во время развертывания. Чтобы упростить подготовку этих ресурсов, вы можете использовать сценарий source/stage-assets.sh
. Этот скрипт следует запускать из source
каталога.
cd /source
./stage-assets.sh
При запуске скрипт выглядит так:
>>> ./stage-assets.sh
This script should be run from the 'source' folder
The region to upload CDK artifacts to (default:us-east-1)?
>>> us-west-2
>>> All assets will be uploaded to cdk-hnb659fds-assets-123456789-us-west-2
>>> Do you want to proceed? (y/n) y
Вы должны указать полное имя региона в качестве первого входного параметра сценария, как показано в приведенном выше примере.
Примечание. Активы необходимо размещать каждый раз, когда в базе кода происходят изменения, чтобы иметь самые актуальные подготовленные ресурсы. Также рекомендуется запустить cdk synth
перед промежуточной установкой.
См. раздел Создание пользовательской сборки.
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Config
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── buildspec.yml
├── deployment
│ ├── build-open-source-dist.sh
│ ├── build-s3-dist.sh
│ ├── cdk-solution-helper
│ ├── clean-for-scan.sh
│ ├── get-cdk-version.js
│ └── manifest.yaml
| ├── run-unit-tests.sh [shell script that can run unit tests for the entire project]
├── pyproject.toml
├── pytest.ini
├── sonar-project.properties
└── source
├── images
├── infrastructure [CDK infrastructure]
├── lambda [Lambda functions for the application]
├── pre-build-lambda-layers.sh [pre-builds lambda layers for the project]
├── scripts [standalone utility scripts]
├── stage-assets.sh
├── test
├── ui-chat [Web App project for chat UI]
└── ui-deployment [Web App project for deployment dashboard UI]
└── docs
В проекте предусмотрена папка документации, которая дает вам доступ к примерам входных данных SageMaker. Поскольку модели SageMaker могут принимать и выводить различные схемы ввода и вывода соответственно, решение запрашивает эти значения у пользователей, чтобы обеспечить правильный вызов модели. Это позволяет решению поддерживать широкий набор моделей SageMaker.
Входные схемы — это, по сути, полезная нагрузка вашей модели с заполнителями для фактических значений. Заполнители позволяют заменять фактические значения модели во время выполнения и представлены ключевым словом, заключенным в угловые скобки, например: <
. Обратите внимание, что <
и <
— это зарезервированные заполнители для приглашения модели и температуры соответственно.
Выходные данные JSONPath модели предоставляют решению путь для получения текстового ответа LLM из ответа модели.
Всегда обращайтесь к документации модели и образцам блокнотов Jupyter SageMaker JumpStart, чтобы увидеть самые актуальные полезные данные модели и поддерживаемые параметры.
Выполните следующую команду:
git clone https://github.com/aws-solutions/
cd /source/infrastructure
npm install
Примечание. Для запуска модульных тестов необходимо установить и запустить Docker, а также настроить действительные учетные данные AWS.
cd /deployment
chmod +x ./run-unit-tests.sh
./run-unit-tests.sh
export DIST_OUTPUT_BUCKET=my-bucket-name
export VERSION=my-version
cd /deployment
chmod +x ./build-s3-dist.sh
./build-s3-dist.sh $DIST_OUTPUT_BUCKET $SOLUTION_NAME $VERSION $CF_TEMPLATE_BUCKET_NAME
Детали параметра:
$DIST_OUTPUT_BUCKET - This is the global name of the distribution. For the bucket name, the AWS Region is added to the global name (example: 'my-bucket-name-us-east-1') to create a regional bucket. The lambda
artifacts should be uploaded to the regional buckets for the CloudFormation template to pick it up for deployment.
$SOLUTION_NAME - The name of This solution (example: generative-ai-application-builder-on-aws)
$VERSION - The version number of the change
$CF_TEMPLATE_BUCKET_NAME - The name of the S3 bucket where the CloudFormation templates should be uploaded
При создании и использовании сегментов мы рекомендуем вам:
Примечание. У вас должен быть установлен AWS CLI.
aws s3 cp ./global-s3-assets/ s3://my-bucket-name-/generative-ai-application-builder-on-aws// --recursive --acl bucket-owner-full-control --profile aws-cred-profile-name
aws s3 cp ./regional-s3-assets/ s3://my-bucket-name-/generative-ai-application-builder-on-aws// --recursive --acl bucket-owner-full-control --profile aws-cred-profile-name
Решение включает в себя два отдельных веб-приложения на основе React: пользовательский интерфейс панели развертывания и пользовательский интерфейс чата. Оба пользовательских интерфейса созданы с использованием Vite, современного и быстрого инструмента для создания современных веб-проектов.
Открыть терминал
Перейдите в исходный каталог
source
каталог в корне проекта: cd /source
Получение и обновление конфигурации времени выполнения
Запустите предоставленный скрипт setup_local_dev_server.py
с соответствующими аргументами:
python setup_local_dev_server.py --ui-project-type --website
на ui-chat
или ui-deployment
в зависимости от того, какой проект пользовательского интерфейса вы хотите настроить.
URL-адресом веб-сайта, на котором развернуто решение (например, https://example.com
).Скрипт получит конфигурацию среды выполнения, используемую для настройки AWS Amplify, которую использует проект. Он также обновит клиент приложения Cognito, добавив адрес localhost в список callbackurls и logouturls, чтобы он работал с доменом, размещенным Cognito.
Например, чтобы обновить проект пользовательского интерфейса Chat:
python setup_local_dev_server.py --ui-project-type ui-chat --website https://example.com
или
python setup_local_dev_server.py -t ui-chat -w https://example.com
Чтобы обновить проект развертывания пользовательского интерфейса:
python setup_local_dev_server.py --ui-project-type ui-deployment --website https://example.com
или
python setup_local_dev_server.py -t ui-deployment -w https://example.com
Перейдите в каталог проекта пользовательского интерфейса.
Перейдите в каталог проекта пользовательского интерфейса, с которым вы хотите работать:
cd ui-chat
или
cd ui-deployment
Установить зависимости
Установите необходимые зависимости Node.js, выполнив следующую команду в каталоге проекта:
npm install
Запустите локальный сервер разработки
В каталоге проекта выполните следующую команду, чтобы запустить локальный сервер разработки Vite:
npm start
Сервер разработки пользовательского интерфейса панели развертывания будет начинаться с http://localhost:5177
, а сервер разработки пользовательского интерфейса Chat — с http://localhost:5178
.
Если эти порты уже используются на вашем компьютере, вы можете настроить сценарий setup_local_dev_server.py
для использования других портов.
После настройки локальной среды разработки вы можете настраивать компоненты React и функциональность проектов пользовательского интерфейса в соответствии с вашими требованиями. Исходный код пользовательского интерфейса панели развертывания находится в каталоге source/ui-deployment
, а исходный код пользовательского интерфейса чата — в каталоге source/ui-chat
.
Следуйте стандартному рабочему процессу разработки React, чтобы внести изменения в код, и используйте локальный сервер разработки Vite для предварительного просмотра ваших изменений в режиме реального времени.
Когда вы будете готовы развернуть свои собственные проекты пользовательского интерфейса, следуйте инструкциям в основном файле README для создания и развертывания решения с помощью AWS CDK.
Это решение собирает анонимизированные операционные показатели, которые помогают AWS улучшить качество и возможности решения. Дополнительную информацию, в том числе о том, как отключить эту возможность, см. в руководстве по реализации.
Авторские права принадлежат Amazon.com, Inc. или ее дочерним компаниям. Все права защищены.
Лицензируется по лицензии Apache версии 2.0 («Лицензия»); вы не можете использовать этот файл, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если это не требуется действующим законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, явных или подразумеваемых. См. Лицензию для определения конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.
Включен сценарий для переноса вариантов использования, созданных в версии 1.X, в обновленное развертывание версии 2.X. См. документацию