| Générateur d'applications d'IA générative sur AWS | ? Demande de fonctionnalité | ? Rapport de bug | Guide de mise en œuvre |
NOTE:
La solution Generative AI Application Builder sur AWS (GAAB) fournit un tableau de bord de gestion basé sur le Web pour déployer des cas d'utilisation personnalisables de Generative AI (Gen AI). Ce tableau de bord de déploiement permet aux clients de déployer, d'expérimenter et de comparer différentes combinaisons de cas d'utilisation du Large Language Model (LLM). Une fois que les clients ont configuré et optimisé avec succès leur cas d’utilisation, ils peuvent mettre leur déploiement en production et l’intégrer dans leurs applications.
Le Generative AI Application Builder est publié sous une licence Apache 2.0 et s'adresse aux utilisateurs débutants à expérimentés qui souhaitent expérimenter et produire différents cas d'utilisation de Gen AI. La solution utilise le logiciel open source (OSS) LangChain pour configurer les connexions à votre choix de grands modèles linguistiques (LLM) pour différents cas d'utilisation. La première version de GAAB permet aux utilisateurs de déployer des cas d'utilisation de chat qui permettent d'interroger les données d'entreprise des utilisateurs dans une interface utilisateur (UI) de style chatbot, ainsi qu'une API pour prendre en charge les implémentations personnalisées des utilisateurs finaux.
Certaines des fonctionnalités de GAAB sont :
Pour un guide détaillé de mise en œuvre de la solution, reportez-vous à The Generative AI Application Builder sur AWS.
Il existe 3 personnalités d'utilisateur uniques mentionnées dans la présentation de la solution ci-dessous :
NOTE:
Lorsque l'utilisateur DevOps déploie le tableau de bord de déploiement, les composants suivants sont déployés dans le compte 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.
Une fois le tableau de bord de déploiement déployé, l'utilisateur administrateur peut alors déployer plusieurs piles de cas d'utilisation. Lorsqu'une pile de cas d'utilisation est déployée par l'utilisateur administrateur, les composants suivants sont déployés dans le compte AWS :
NOTE:
Il existe deux options de déploiement dans votre compte AWS :
cdk deploy
Voici les prérequis pour créer et déployer localement :
ensurepip
et pip
; cependant, si vous utilisez un environnement sans ces packages, vous devrez les installer manuellement (par exemple, une image Docker minimale). Voir le guide d'installation de pip pour plus de détails. Remarque : configurez l'AWS CLI avec vos informations d'identification AWS ou exportez-les dans l'environnement du terminal CLI. Si les informations d'identification sont invalides ou expirées, l'exécution cdk deploy
génère une erreur.
De plus, si vous n'avez pas exécuté cdk bootstrap
dans ce compte et cette région, veuillez suivre les instructions ici pour exécuter cdk bootstrap en une seule fois avant de passer aux étapes ci-dessous.
Après avoir cloné le dépôt depuis GitHub, procédez comme suit :
NOTE:
cdk-asset-bucket
dans source/infrastructure/cdk.json
. La valeur de cette propriété doit être le nom du compartiment créé par le processus cdk bootstrap
. Sauf si un nom de compartiment est configuré, le processus cdk bootstrap
crée un compartiment au format suivant : cdk-hnb659fds-assets--
(où est l'ID de compte AWS dans lequel la solution est déployée dans le spécifique). Le dépôt a actuellement la valeur définie comme suit : "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=
Remarque : Étant donné que cdk deploy
est exécuté avec un nom de pile, il ne synthétise pas les autres piles CloudFormation dans le dossier d'infrastructure. Pour garantir que toutes les piles sont synthétisées en fonction des modifications du code de l'infrastructure, veuillez vous assurer de cdk synth
. Pour une liste complète des commandes cdk pouvant être exécutées, voir Commandes de la boîte à outils
Pour que le tableau de bord de déploiement puisse déployer les cas d'utilisation du chat LLM, vous devrez en outre transférer les actifs CDK synthétisés (tels que les lambdas, les modèles CloudFormation synthétisés, etc.) du répertoire source/infrastructure/cdk.out
vers un compartiment S3 configuré dans votre compte. d'où ces ressources seront extraites au moment du déploiement. Pour faciliter la préparation de ces ressources, vous pouvez utiliser le script source/stage-assets.sh
. Ce script doit être exécuté à partir du répertoire source
.
cd /source
./stage-assets.sh
Une fois exécuté, le script ressemble à ceci :
>>> ./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
Vous devez fournir le nom complet de la région comme première entrée du script, comme indiqué dans l'exemple ci-dessus.
Remarque : Les ressources doivent être transférées à chaque fois qu'une modification est apportée à la base de code pour disposer des ressources transférées les plus à jour. Il est également recommandé d'exécuter cdk synth
avant la mise en scène.
Reportez-vous à la section Création d'une version personnalisée
├── 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
Le projet fournit un dossier docs qui vous donne accès à des exemples d'entrées SageMaker. Étant donné que les modèles SageMaker peuvent respectivement accepter et générer une variété de schémas d'entrée et de sortie, la solution demande ces valeurs aux utilisateurs pour permettre l'invocation correcte du modèle. Cela permet à la solution de prendre en charge un large éventail de modèles SageMaker.
Les schémas d'entrée constituent essentiellement la charge utile de votre modèle, avec des espaces réservés pour les valeurs réelles. Les espaces réservés permettent de remplacer les valeurs réelles du modèle au moment de l'exécution et sont représentés par un mot-clé entre crochets comme : <
. Notez que <
et <
sont des espaces réservés respectivement pour l'invite du modèle et les températures.
La sortie JSONPath du modèle fournit à la solution un chemin pour récupérer la réponse textuelle du LLM à partir de la réponse du modèle.
Veuillez toujours vous référer à la documentation du modèle et aux exemples de notebooks jupyter SageMaker JumpStart pour voir les charges utiles du modèle les plus récentes et les paramètres pris en charge.
Exécutez la commande suivante :
git clone https://github.com/aws-solutions/
cd /source/infrastructure
npm install
Remarque : Pour exécuter les tests unitaires, Docker doit être installé et exécuté, et des informations d'identification AWS valides doivent être configurées.
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
Détails des paramètres :
$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
Lorsque vous créez et utilisez des buckets, nous vous recommandons de :
Remarque : vous devez avoir installé l'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
La solution comprend deux applications Web distinctes basées sur React : l'interface utilisateur du tableau de bord de déploiement et l'interface utilisateur de chat. Les deux interfaces utilisateur sont construites à l'aide de Vite, un outil de création moderne et rapide pour les projets Web modernes.
Ouvrir un terminal
Accédez au répertoire source
source
à la racine du projet : cd /source
Récupérer et mettre à jour la configuration d'exécution
Exécutez le script setup_local_dev_server.py
fourni avec les arguments appropriés :
python setup_local_dev_server.py --ui-project-type --website
par ui-chat
ou ui-deployment
en fonction du projet d'interface utilisateur que vous souhaitez configurer.
par l'URL du site Web sur lequel la solution est déployée (par exemple, https://example.com
).Le script récupérera la configuration d'exécution utilisée pour configurer AWS Amplify, que le projet utilise. Il mettra également à jour le client de l'application Cognito en ajoutant l'adresse localhost à la liste des callbackurls et des logouturls, afin qu'il fonctionne avec le domaine hébergé par Cognito.
Par exemple, pour mettre à jour le projet UI Chat :
python setup_local_dev_server.py --ui-project-type ui-chat --website https://example.com
ou
python setup_local_dev_server.py -t ui-chat -w https://example.com
Pour mettre à jour le projet de déploiement d'interface utilisateur :
python setup_local_dev_server.py --ui-project-type ui-deployment --website https://example.com
ou
python setup_local_dev_server.py -t ui-deployment -w https://example.com
Accédez au répertoire du projet d'interface utilisateur
Accédez au répertoire du projet d'interface utilisateur avec lequel vous souhaitez travailler :
cd ui-chat
ou
cd ui-deployment
Installer les dépendances
Installez les dépendances Node.js requises en exécutant la commande suivante dans le répertoire du projet :
npm install
Démarrez le serveur de développement local
Dans le répertoire du projet, exécutez la commande suivante pour démarrer le serveur de développement Vite local :
npm start
Le serveur de développement de l'interface utilisateur du tableau de bord de déploiement démarrera à http://localhost:5177
et le serveur de développement de l'interface utilisateur Chat démarrera à http://localhost:5178
.
Si ces ports sont déjà utilisés sur votre ordinateur, vous pouvez personnaliser le script setup_local_dev_server.py
pour utiliser différents ports.
Une fois l'environnement de développement local configuré, vous pouvez désormais personnaliser les composants React et les fonctionnalités des projets d'interface utilisateur en fonction de vos besoins. Le code source de l'interface utilisateur du tableau de bord de déploiement se trouve dans le répertoire source/ui-deployment
et le code source de l'interface utilisateur Chat se trouve dans le répertoire source/ui-chat
.
Suivez le flux de travail de développement React standard pour apporter des modifications au code et utilisez le serveur de développement Vite local pour prévisualiser vos modifications en temps réel.
Lorsque vous êtes prêt à déployer vos projets d'interface utilisateur personnalisés, suivez les instructions du fichier README principal pour créer et déployer la solution à l'aide du CDK AWS.
Cette solution collecte des métriques opérationnelles anonymisées pour aider AWS à améliorer la qualité et les fonctionnalités de la solution. Pour plus d’informations, notamment sur la façon de désactiver cette fonctionnalité, veuillez consulter le guide de mise en œuvre.
Copyright Amazon.com, Inc. ou ses sociétés affiliées. Tous droits réservés.
Sous licence Apache, version 2.0 (la « Licence » ); vous ne pouvez pas utiliser ce fichier sauf en conformité avec la licence. Vous pouvez obtenir une copie de la licence à
http://www.apache.org/licenses/LICENSE-2.0
Sauf disposition contraire de la loi applicable ou accord écrit, le logiciel distribué sous la licence est distribué « EN L'ÉTAT », SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite. Consultez la licence pour connaître la langue spécifique régissant les autorisations et les limitations en vertu de la licence.
Un script est inclus pour migrer les cas d'utilisation créés par la version v1.X vers un déploiement v2.X mis à niveau. Voir la documentation