Dans ce référentiel, nous présentons une solution qui exploite la puissance de l'IA générative pour rationaliser le processus d'intégration des utilisateurs pour les services financiers via un assistant numérique. L'intégration de nouveaux clients dans la banque est une étape cruciale du parcours client, impliquant une série d'activités conçues pour répondre aux exigences de connaissance du client (KYC), effectuer les vérifications nécessaires et leur présenter les produits ou services de la banque. Traditionnellement, l’intégration des utilisateurs était un processus fastidieux et fortement manuel. Notre solution fournit des conseils pratiques pour relever ce défi en tirant parti d'un assistant d'IA générative sur AWS.
Amazon Bedrock est un service entièrement géré qui offre un choix de modèles de base (FM) hautes performances provenant de grandes sociétés d'IA telles que AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI et Amazon via une seule API, ainsi qu'un un large éventail de fonctionnalités dont vous avez besoin pour créer des applications d'IA générative avec sécurité, confidentialité et IA responsable. En utilisant Anthropic Claude 3.5 Sonnet sur Amazon Bedrock, nous construisons un assistant numérique qui automatise la paperasse, les vérifications d'identité et engage les clients via des interactions conversationnelles, appelé Amazon Penny. En conséquence, les clients peuvent être intégrés en quelques minutes grâce à des flux de travail sécurisés et automatisés.
Le déroulement de la candidature est le suivant :
Les utilisateurs accèdent au site Web frontal hébergé dans AWS Amplify.
Le site Web appelle un point de terminaison Amazon CloudFront pour interagir avec l'assistant numérique Penny, qui est conteneurisé et déployé dans AWS Fargate.
L'assistant numérique utilise un agent Langchain personnalisé pour répondre aux questions sur les produits et services de la banque et orchestrer le flux d'intégration. Le Large Language Model (LLM) utilisé par l'agent est Anthropic Claude 3.5 Sonnet, fourni par Amazon Bedrock.
Si l'utilisateur pose une question générale relative aux produits ou services de la banque, l'agent utilisera un outil Langchain personnalisé appelé outil de recherche de produits. Cet outil utilise Amazon Kendra lié à une source de données S3 qui contient les données de la banque.
Si l'utilisateur indique qu'il souhaite ouvrir un nouveau compte, l'agent lui demandera son e-mail. Une fois que l'utilisateur aura répondu, il utilisera un outil Langchain personnalisé appelé outil de validation d'e-mail. Cet outil vérifie s'il existe un compte existant dans la base de données Amazon DynamoDB de la banque, en appelant un point de terminaison déployé dans Amazon API Gateway.
Après la validation de l'e-mail, les informations KYC sont collectées telles que le prénom et le nom. Ensuite, l'utilisateur est invité à fournir une pièce d'identité. Ceci est téléchargé sur Amazon S3.
L'agent utilisera un outil Langchain personnalisé appelé outil de vérification d'identité. Cet outil vérifie si les détails de l'utilisateur saisis lors de la session correspondent à l'ID, en appelant un point de terminaison déployé dans Amazon API Gateway. Les détails sont vérifiés en extrayant le texte du document à l'aide d'Amazon Textract.
Après la vérification de l'identité, il est demandé à l'utilisateur de prendre un selfie. L'image est téléchargée sur Amazon S3. Ensuite, l’agent utilisera un outil Langchain personnalisé appelé outil de vérification Selfie. Cet outil vérifie si le selfie téléchargé correspond au visage sur l'ID, en appelant un point de terminaison déployé dans Amazon API Gateway. La correspondance faciale est détectée à l'aide d'Amazon Rekognition.
Une fois la vérification faciale réussie, l'agent utilisera un outil Langchain personnalisé appelé outil de création de compte. Cet outil crée un nouveau compte dans la base de données Amazon DynamoDB de la banque, en appelant un point de terminaison déployé dans Amazon API Gateway.
L'utilisateur est informé que son nouveau compte a été créé avec succès, à l'aide d'Amazon Simple Email Service (SES).
Identifiez le compte AWS sur lequel vous souhaitez déployer cette solution et assurez-vous de spécifier les détails de ce compte si nécessaire dans les étapes ci-dessous. Préparez les éléments suivants dans votre ligne de commande locale :
cdk bootstrap
à partir de la ligne de commande.Dans le compte AWS que vous avez choisi, procédez comme suit :
sudo docker info
. Si Docker est en cours d'exécution, des informations sur Docker s'affichent.Remarque : selon un ensemble d'hypothèses formulées sur une base mensuelle, l'exécution de cette charge de travail aurait un coût horaire estimé à environ 1,34 $. Assurez-vous de vérifier les détails des tarifs de chaque service individuel pour comprendre les coûts qui peuvent vous être facturés pour différents niveaux d'utilisation et configurations de ressources.
Pour déployer l'agent sur votre compte AWS, suivez les instructions ci-dessous :
./api/llm
chmod +x script.sh
./script.sh
et votre nouveau dépôt sera créé dans ECR et l'image sera déployée.Pour déployer l'infrastructure d'outils sur votre compte AWS, suivez les instructions ci-dessous :
./infra
npm i
pour installer les modules de nœudsnpm run build
pour compiler TypeScript en JavascriptLLMImageTag
est la balise de l'image Docker qui peut être trouvée dans la console AWS au sein du service ECR. Entrez les valeurs de vos paramètres. Une pile CloudFormation sera créée dans votre compte AWS. cdk deploy --parameters SesBankEmail={email} --parameters SesCustomerEmail={email} --parameters LLMImageTag={tag}
Exemple d'utilisation :
cdk deploy --parameters [email protected] --parameters [email protected] --parameters LLMImageTag=20240307_123456
SesBankEmail
et SesCustomerEmail
que vous avez fournis pour vérifier les nouvelles identités SES créées. Veuillez vous assurer de cliquer sur le lien de vérification fourni dans l'e-mail.CloudFrontDomainName
généré par la pile CloudFormationRemarque : Si la pile CloudFormation reste bloquée en attendant la fin du déploiement LLMDeployment, il est possible que votre tâche ECS ait échoué. Cela peut être dû au fait que l'architecture de la machine sur laquelle vous avez construit l'image ne correspond pas à celle que nous avons configurée pour être utilisée dans notre projet (ARM64). Dans ce cas, mettez à jour manuellement l'architecture utilisée par la définition de tâche ECS (pour éventuellement utiliser X86 à la place).
Pour déployer l'application de démonstration sur votre compte AWS, suivez les instructions ci-dessous :
LLM_API_ENDPOINT
dans App.js
dans ./penny-ui/src/
par CloudFrontDomainName
généré par la pile CloudFormation../penny-ui
npm i
amplify init
amplify add hosting
amplify publish
Assurez-vous d'avoir terminé l'étape Deploy the Tools Infrastructure to AWS Account
Accédez à ./api/llm
os.environ["kendraIndexId"]
par l'ID d'index Kendra que vous souhaitez utiliser, dans tools.py
os.environ["apiEndpoint"]
par le point de terminaison API Gateway généré par la pile CloudFormation, dans tools.py
os.environ["idBucketName"]
par le nom du compartiment d'ID S3 créé par la pile CloudFormation, dans main.py
Exécutez python3 -m uvicorn main:app --reload
. L'API LLM sera disponible sur http://127.0.0.1:8000/
Accédez à ./penny-ui
Exécutez npm i
pour installer les dépendances
Exécutez npm run start
pour démarrer le serveur de développement/L'application de démonstration sera disponible sur http://localhost:3000/
Effectuez les étapes suivantes pour nettoyer et supprimer l'environnement de votre compte :
PennyInfraStack
localement en exécutant les commandes suivantes. Cela supprimera automatiquement toutes les piles et ressources associées au PennyInfraStack
dans votre compte AWS. cd ./infra
cdk destroy
Supprimez les compartiments S3 suivants : ID Bucket et AnyBank Catalog Bucket. Assurez-vous de vider le compartiment avant de le supprimer. Recherchez ces compartiments en recherchant les préfixes pennyinfrastack-idbucket
et pennyinfrastack-anybankcatalogbucket
.
Supprimez l'application frontale hébergée sur Amplify en exécutant amplify delete
.
Supprimez les artefacts d'image et le référentiel privé sur ECR avec le nom penny-workshop
.
Voir CONTRIBUTION pour plus d'informations.
Cette bibliothèque est sous licence MIT-0. Voir le fichier LICENCE.