Productivité des employés GenAI Assistant Exemple est un exemple de code innovant conçu pour améliorer l'efficience et l'efficacité des tâches d'écriture grâce à l'intégration des technologies d'IA. Conçu pour les utilisateurs d'AWS, cet exemple d'assistant utilise Amazon Bedrock et des modèles d'IA génératifs pour automatiser la création de modèles initiaux, qui peuvent également être personnalisés selon vos propres besoins. Les utilisateurs peuvent saisir à la fois du texte et des images, bénéficiant des capacités multimodales d'une IA de pointe comme la famille Claude 3, qui prend en charge l'interaction dynamique avec plusieurs types de données.
L'exemple d'assistant GenAI pour la productivité des employés est construit sur des technologies sans serveur AWS robustes telles que Lambda, API Gateway, DynamoDB et S3, garantissant l'évolutivité, la haute disponibilité et la sécurité via Cognito. Ces technologies constituent une base qui permet à l'exemple d'assistant GenAI pour la productivité des employés de répondre à la demande aux besoins des utilisateurs tout en maintenant des normes de sécurité strictes. Le cœur de ses capacités génératives provient des puissants modèles d'IA disponibles dans Amazon Bedrock, qui permettent de fournir rapidement un contenu personnalisé et de haute qualité.
L'exemple GenAI Assistant Productivity des employés présente ses fonctionnalités à travers une série de GIF interactifs, permettant aux utilisateurs de comprendre et d'utiliser facilement ses fonctionnalités :
En fournissant une interface simplifiée et des outils complets, Employee Productivity GenAI Assistant Sample simplifie non seulement la génération de documents complexes, mais améliore également la productivité et la créativité des utilisateurs. Ce référentiel GitHub sert de guide pour déployer cette solution sur les comptes AWS appartenant aux utilisateurs, garantissant que chacun peut configurer et commencer à bénéficier des capacités avancées de cet assistant d'écriture alimenté par l'IA.
Modèles architecturaux et composants réutilisables
En plus des fonctionnalités interactives, l'exemple d'assistant GenAI pour la productivité des employés fournit un modèle architectural robuste pour créer des solutions d'IA générative sur AWS. En tirant parti des services sans serveur Amazon Bedrock et AWS tels que Lambda, API Gateway et DynamoDB, l'exemple démontre une approche évolutive et sécurisée du déploiement d'applications d'IA générative. Ce modèle d'architecture peut être utilisé comme base pour créer diverses solutions d'IA générative adaptées à différents cas d'utilisation. De plus, la solution comprend une interface utilisateur réutilisable basée sur des composants et construite sur le framework React, permettant aux développeurs d'étendre et de personnaliser facilement l'interface pour répondre à leurs besoins spécifiques. L'exemple présente également la mise en œuvre de la prise en charge du streaming à l'aide de WebSockets, permettant des réponses en temps réel dans les interactions basées sur le chat et les demandes ponctuelles, améliorant ainsi l'expérience utilisateur et la réactivité de l'assistant Generative AI.
improve-employee-productivity-using-genai/
│
├── backend/ - Contains all backend related files.
│ ├── artifacts/ - Artifacts such as screenshots
│ ├── src/ - Source code for Lambda functions.
│ ├── utils/ - Utility scripts such as helper to create Cognito users
│ ├── layer/ - Code for Lambda layers.
│ └── template.yaml - Main SAM template for Infrastructure as Code (IaC) deployment.
│
└── frontend/ - Houses the frontend React application.
│ ├── src/ - Main folder for React code.
│ └── App.js - Entry point for the React application.
│ └── .env - Environment variables created on deployment (auto-generated).
│
├── deploy.sh - Single bash script for deploying both backend and frontend.
└── default_templates.json - Default templates that gets uploaded to DynamoDB at deployment for bootstrap.
Avant de commencer le déploiement et le développement de l'exemple d'Assistant GenAI pour la productivité des employés, assurez-vous d'avoir configuré les prérequis suivants :
pip
est installé et fonctionneVeuillez vous assurer qu'ils sont installés et correctement configurés avant de procéder au déploiement ou au développement de l'exemple d'Assistant GenAI pour la productivité des employés.
️ Important : Avant de procéder au déploiement, assurez-vous d'avoir rempli tous les pré-requis.
L'exemple de déploiement de l'assistant GenAI pour la productivité des employés implique l'exécution d'un script bash qui gère la configuration du backend et du frontend. Vous trouverez ci-dessous les étapes détaillées effectuées par le script :
Pour déployer l'exemple d'Assistant GenAI pour Employee Productivity, utilisez les commandes suivantes dans votre terminal, y compris la région AWS comme argument obligatoire :
./deploy.sh --region=your-aws-region --email=your-email
./deploy.sh --backend --region=your-aws-region --email=your-email
./deploy.sh --frontend --region=your-aws-region --email=your-email
./deploy.sh --delete --region=your-aws-region --email=your-email
./deploy.sh --container --region=your-aws-region --email=your-email
Remplacez your-aws-region
par la région AWS appropriée (par exemple, us-east-1
)
Assurez-vous d'exécuter ces commandes à partir de la racine du répertoire du projet et remplacez your-aws-region
par la région AWS réelle que vous avez l'intention d'utiliser.
Une fois le déploiement terminé, suivez les instructions ci-dessous sur les étapes post-déploiement.
Pour plus de détails sur ce que fait le script, voir ci-dessous :
--delete
est utilisé, le script demande une confirmation pour supprimer la pile AWS spécifiée.--backend
est spécifié) :sam build --template "$SAM_TEMPLATE" --parallel --cached
--container
est spécifié, le ./deploy.sh
déclenchera l'exécution du SAM comme : sam build --template "$SAM_TEMPLATE" --parallel --cached --use-container
--frontend
est spécifié) :.env
dans le répertoire frontend avec ces sorties.aws-exports.json
pour la configuration AWS.AWS CloudShell vous permet de disposer d'un environnement Linux gratuit et instantané accessible depuis votre console AWS. Pour installer la solution à l'aide d'AWS CloudShell, veuillez suivre les étapes ci-dessous dans l'ordre.
Installation des dépendances : Tout d'abord, assurez-vous que les outils de développement et les bibliothèques nécessaires sont installés. Ouvrez AWS CloudShell et exécutez les commandes suivantes :
# Install Development Tools
sudo yum groupinstall " Development Tools " -y &&
# Install necessary libraries
sudo yum install openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel ncurses-devel readline-devel sqlite-devel -y
Installation de Python 3.11 avec PyEnv : AWS CloudShell n'est pas fourni avec Python 3.11, nous devrons donc installer PyEnv pour ensuite installer et définir Python 3.11 comme version Python par défaut dans notre shell.
# Install PyEnv
git clone https://github.com/pyenv/pyenv.git ~ /.pyenv
# Set .bash_profile env
echo ' ' >> ~ /.bash_profile
echo ' # Pyenv Configuration ' >> ~ /.bash_profile
echo ' export PYENV_ROOT="$HOME/.pyenv" ' >> ~ /.bash_profile
echo ' export PATH="$PYENV_ROOT/bin:$PATH" ' >> ~ /.bash_profile
echo ' eval "$(pyenv init -)" ' >> ~ /.bash_profile
# Reinitialize your Shell
source ~ /.bash_profile
# Install Python 3.11
pyenv install 3.11
# Set Python 3.11 as default with PyEnv
pyenv global 3.11
Créer un nouveau dossier de travail sur CloudShell : le répertoire personnel AWS CloudShell ne dispose que de 1 Go de stockage, nous devrons utiliser le stockage temporaire pour créer et déployer cette application. Créons d’abord un dossier dans le répertoire racine et définissons les autorisations utilisateur appropriées.
# Folder creation
sudo mkdir /aws-samples &&
# Setting folder permissions
sudo chown cloudshell-user -R /aws-samples
Cloner le référentiel et déployer la solution : Maintenant que nous avons installé un dossier et toutes les dépendances, voyons étape par étape comment déployer la solution à l'aide d'AWS CloudShel.
# Navigate to the newly created folder
cd /aws-samples
# Clone the repo in the /aws-samples folder
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai.git
# Navigate to the git folder
cd improve-employee-productivity-using-genai/
# Before running the deployment command, set the maximum npm memory to 1024MB to avoid OOM error
export NODE_OPTIONS= " --max_old_space_size=1024 "
Déployer le Backend de la solution : Maintenant que nous avons toutes les dépendances pour déployer notre application nous pouvons déployer le backend de notre solution en utilisant la commande ci-dessous. Nous utilisons l'option de déploiement pour le backend puis le frontend car Cloudshell ne dispose pas de suffisamment de mémoire pour continuer à déployer les deux dans la même commande. Veuillez modifier la région et l'adresse e-mail avant d'exécuter la commande ci-dessous.
# Run the deployment command for the backend
./deploy.sh --backend --region=your-aws-region --email=your-email
Déployer le Frontend de la solution : Enfin la dernière chose qui reste est de déployer le Frontend de la solution. Veuillez utiliser la même région et la même adresse e-mail que celles que vous avez exécutées dans la commande Backend ci-dessus.
# Run the deployment command for the frontend
./deploy.sh --frontend --region=your-aws-region --email=your-email
Le déploiement peut prendre entre 15 et 30 minutes. Sachez que si vous n'interagissez pas avec AWS CloudShell pendant plus de 20 minutes, votre environnement CloudShell sera supprimé. Il est recommandé d'ouvrir un deuxième onglet CloudShell et d'exécuter certaines commandes toutes les 10 minutes pour éviter l'arrêt automatique.
Remarque : Si cette commande échoue en raison d'un manque de mémoire dans CloudShell, veuillez simplement réexécuter la commande
--frontend
et cela devrait fonctionner.
Une fois le déploiement terminé, vous serez affiché avec l'URL CloudFront, le nom d'utilisateur et le mot de passe temporaire pour accéder à la solution. Veuillez consulter la section Post-déploiement
Le déploiement de l'exemple d'Assistant GenAI pour la productivité des employés à l'aide d'AWS Cloud9 fournit une configuration d'environnement de développement rationalisée et cohérente. Suivez ces étapes détaillées pour configurer votre environnement Cloud9 et déployer l'application efficacement.
Remarque : le volume EBS est automatiquement redimensionné :
Ouvrez la console AWS Cloud9 :
Créer un nouvel environnement :
GenAI-Productivity-Env
, puis cliquez sur Next step .Configurer l'environnement :
t3/t3.medium
ou supérieur pour garantir que vous disposez d'une puissance de calcul suffisante.AWS System Manager (SSM)
comme type de connexionRéviser et créer :
Une fois que votre environnement est prêt, vous devez le préparer pour le déploiement de l'exemple d'assistant Employee Productivity GenAI.
Accédez à votre environnement Cloud9 :
Cloner le référentiel du projet :
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai
cd improve-employee-productivity-using-genai
Vous pouvez déployer à la fois le backend et le frontend ou les gérer séparément.
Pour déployer à la fois le backend et le frontend (recommandé) :
./deploy.sh --container --region= < your-aws-region > --email= < your-email >
Remplacez par votre région AWS (par exemple, us-east-1) et par votre adresse e-mail réelle.
Pour déployer uniquement le backend : :
./deploy.sh --backend --container --region= < your-aws-region > --email= < your-email >
Remplacez par votre région AWS (par exemple, us-east-1) et par votre adresse e-mail réelle.
Pour déployer uniquement le frontend : :
./deploy.sh --frontend --region= < your-aws-region > --email= < your-email >
Remplacez par votre région AWS (par exemple, us-east-1) et par votre adresse e-mail réelle.
Une fois le script de déploiement terminé, passez à la section suivante Étapes post-déploiement
Après avoir déployé avec succès l'exemple d'assistant GenAI pour la productivité des employés, étant donné que le déploiement crée par défaut UNIQUEMENT l'utilisateur administrateur sur Cognito, veuillez suivre ces étapes pour créer des utilisateurs Cognito supplémentaires afin de donner accès à votre exemple de déploiement de l'assistant GenAI pour la productivité des employés :
Accédez à l'application :
Connectez-vous à l'application :
<your-email>
) pour vous connecter.Explorez l'application :
Créer des utilisateurs supplémentaires (facultatif) :
EmployeeProductivityGenAIAssistantExample
.Attribuer des rôles d'utilisateur (facultatif) :
? Félicitations pour le déploiement et la configuration de l'exemple d'Assistant GenAI pour la productivité des employés ! Explorez ses capacités et profitez de l'expérience.
.env
et aws-exports.json
dans le répertoire frontend. Explorez les capacités de l'exemple d'Assistant GenAI pour la productivité des employés avec ces démonstrations attrayantes. Chaque fonctionnalité est mise en évidence via des GIF interactifs qui montrent le système en action :
Convivialité du terrain de jeu :
Création de modèle :
Application modèle en activité :
Fonctionnalité d'historique d'activité :
Chat interactif avec des modèles :
Entrée multimodalité :
Ces outils sont conçus pour augmenter votre productivité et votre créativité en rationalisant votre interaction avec les modèles d'IA dans un environnement sans serveur.
Le coût d'exécution de l'exemple d'Assistant GenAI pour la productivité des employés peut varier en fonction de vos modèles d'utilisation et des modèles Amazon Bedrock spécifiques que vous choisissez d'utiliser. Pour fournir une estimation approximative, nous avons créé un lien d'estimation des coûts qui considère un scénario avec 50 utilisateurs, chacun utilisant l'outil 5 fois par jour avec une moyenne de 500 jetons d'entrée et 200 jetons de sortie.
Le coût mensuel estimé est basé sur les hypothèses suivantes :
La tarification du substrat rocheux peut être consultée sur la page Tarification du substrat rocheux AWS. Les coûts estimés pour le scénario donné sont les suivants :
Modèle Claude 3 Haïku :
Modèle Claude 3 Sonnets :
Modèle Claude 3.5 Sonnet :
Modèle Claude 3 Opus :
Remarques : Bien que les estimations de coûts soient calculées à l'aide d'un seul modèle, vous avez la possibilité de basculer entre les modèles selon vos besoins. Par exemple, si vous avez besoin d'un modèle plus avancé comme Opus pour une demande spécifique, vous ne serez facturé que pour cette utilisation. Pour la plupart des demandes, vous pouvez utiliser des modèles plus économiques comme Haiku, ce qui contribuera à maintenir le coût global de l'outil inférieur et optimisé pour vos besoins.
Remarque : L'estimation ne prend pas en compte l'offre gratuite AWS pour les services éligibles. Vos coûts réels peuvent être inférieurs si vous restez dans les limites de l'offre gratuite. Veuillez également noter que les tarifs des services AWS peuvent changer au fil du temps, les coûts réels peuvent donc différer de ces estimations.
Il est important de noter qu’il ne s’agit que d’une estimation et ne représente pas le coût exact. L’objectif est de fournir une idée générale du coût potentiel en fonction du scénario donné. Le coût réel varie en fonction de vos modèles d'utilisation spécifiques et des modèles Amazon Bedrock que vous choisissez d'utiliser.
L'un des grands avantages de l'architecture cloud et sans serveur est la possibilité d'augmenter ou de réduire les ressources en fonction de la demande. En conséquence, le coût de la solution augmentera ou diminuera en conséquence, garantissant que vous ne payez que pour les ressources que vous consommez.
De plus, certains composants de la solution, tels qu'AWS Lambda, S3, CloudFront, DynamoDB et Amazon Cognito, peuvent ne pas entraîner de coûts supplémentaires si vous respectez toujours les limites de l'offre gratuite AWS.
Lien pour l'estimation des coûts : https://calculator.aws/#/estimate?id=5fa739dd54db78d439bb602e17bd8af8a1d78f07
Remarque : L'estimateur de coûts n'inclut pas les frais pour Amazon Bedrock, car les modèles Claude ne sont pas encore pris en charge dans le calculateur.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Nous apprécions les contributions à l'exemple d'assistant GenAI pour la productivité des employés ! Si vous avez des suggestions ou souhaitez signaler des problèmes, n'hésitez pas à ouvrir une pull request ou un problème.
Lors de la mise en œuvre de solutions, il est essentiel de suivre les meilleures pratiques pour garantir la sécurité, la fiabilité et l'observabilité. Vous trouverez ci-dessous quelques recommandations, mais notez que cette liste n’est pas exhaustive et qu’il pourrait y en avoir d’autres à considérer.
Pour améliorer la sécurité des données, envisagez d'activer le chiffrement à l'aide d'une clé gérée par le client (CMK) stockée dans AWS Key Management Service (KMS) pour divers services. Cela fournit une couche de sécurité supplémentaire en vous permettant de contrôler l'accès aux clés de cryptage.
La mise en œuvre de mécanismes robustes d’observabilité et de journalisation est cruciale pour la surveillance, le dépannage et l’audit de sécurité.
AccessLogSetting
pour enregistrer les demandes d'accès.Pour les fonctions Lambda exécutées dans un cloud privé virtuel (VPC), assurez-vous d'une configuration appropriée des points de terminaison du VPC pour faciliter une communication sécurisée et efficace. Cela peut permettre de conserver tous les appels internes au VPC et d'éviter d'utiliser des points de terminaison publics AWS.
En mettant en œuvre ces bonnes pratiques, vous pouvez améliorer considérablement la sécurité, la fiabilité et l'observabilité de votre environnement. Tenez toujours compte des besoins spécifiques de votre application et de votre infrastructure pour déterminer les configurations les plus appropriées.