In diesem Repository stellen wir eine Lösung vor, die die Leistungsfähigkeit der generativen KI nutzt, um den Benutzer-Onboarding-Prozess für Finanzdienstleistungen durch einen digitalen Assistenten zu optimieren. Das Onboarding neuer Kunden in der Bank ist ein entscheidender Schritt in der Customer Journey und umfasst eine Reihe von Aktivitäten, die darauf abzielen, die Know-Your-Customer-Anforderungen (KYC) zu erfüllen, notwendige Überprüfungen durchzuführen und ihnen die Produkte oder Dienstleistungen der Bank vorzustellen. Traditionell war das Benutzer-Onboarding ein langwieriger und stark manueller Prozess. Unsere Lösung bietet praktische Anleitung zur Bewältigung dieser Herausforderung durch den Einsatz eines generativen KI-Assistenten auf AWS.
Amazon Bedrock ist ein vollständig verwalteter Dienst, der über eine einzige API eine Auswahl leistungsstarker Foundation-Modelle (FMs) von führenden KI-Unternehmen wie AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI und Amazon bietet Ein breites Spektrum an Funktionen, die Sie zum Erstellen generativer KI-Anwendungen mit Sicherheit, Datenschutz und verantwortungsvoller KI benötigen. Mit Anthropic Claude 3.5 Sonnet auf Amazon Bedrock entwickeln wir einen digitalen Assistenten namens Amazon Penny, der den Papierkram und die Identitätsprüfung automatisiert und Kunden durch Gesprächsinteraktionen einbezieht. Dadurch können Kunden durch sichere, automatisierte Arbeitsabläufe innerhalb weniger Minuten eingebunden werden.
Der Ablauf der Bewerbung ist wie folgt:
Benutzer greifen auf die in AWS Amplify gehostete Front-End-Website zu.
Die Website ruft einen Amazon CloudFront-Endpunkt auf, um mit dem digitalen Assistenten Penny zu interagieren, der in AWS Fargate containerisiert und bereitgestellt wird.
Der digitale Assistent verwendet einen benutzerdefinierten Langchain-Agenten, um Fragen zu den Produkten und Dienstleistungen der Bank zu beantworten und den Onboarding-Ablauf zu orchestrieren. Das vom Agent verwendete Large Language Model (LLM) ist Anthropic Claude 3.5 Sonnet, bereitgestellt von Amazon Bedrock.
Wenn der Benutzer eine allgemeine Frage zu den Produkten oder Dienstleistungen der Bank stellt, verwendet der Agent ein benutzerdefiniertes Langchain-Tool namens Product Search Tool. Dieses Tool nutzt Amazon Kendra, verknüpft mit einer S3-Datenquelle, die die Daten der Bank enthält.
Wenn der Benutzer angibt, dass er ein neues Konto eröffnen möchte, fordert der Agent den Benutzer zur Eingabe seiner E-Mail-Adresse auf. Sobald der Benutzer antwortet, verwendet er ein benutzerdefiniertes Langchain-Tool namens Email Validation Tool. Dieses Tool prüft, ob in der Amazon DynamoDB-Datenbank der Bank ein Konto vorhanden ist, indem es einen im Amazon API Gateway bereitgestellten Endpunkt aufruft.
Nach der E-Mail-Validierung werden KYC-Informationen wie Vor- und Nachname erfasst. Anschließend wird der Benutzer zur Eingabe eines Ausweisdokuments aufgefordert. Dies wird auf Amazon S3 hochgeladen.
Der Agent verwendet ein benutzerdefiniertes Langchain-Tool namens ID Verification Tool. Dieses Tool prüft, ob die während der Sitzung eingegebenen Benutzerdetails mit der ID übereinstimmen, indem es einen in Amazon API Gateway bereitgestellten Endpunkt aufruft. Die Details werden durch Extrahieren des Dokumenttextes mit Amazon Textract überprüft.
Nach der Identitätsprüfung wird der Nutzer um ein Selfie gebeten. Das Bild wird auf Amazon S3 hochgeladen. Anschließend verwendet der Agent ein benutzerdefiniertes Langchain-Tool namens Selfie Verification Tool. Dieses Tool prüft, ob das hochgeladene Selfie mit dem Gesicht auf der ID übereinstimmt, indem es einen in Amazon API Gateway bereitgestellten Endpunkt aufruft. Die Gesichtsübereinstimmung wird mithilfe von Amazon Rekognition erkannt.
Nachdem die Gesichtsüberprüfung erfolgreich war, verwendet der Agent ein benutzerdefiniertes Langchain-Tool namens Account Creation Tool. Dieses Tool erstellt ein neues Konto in der Amazon DynamoDB-Datenbank der Bank, indem es einen im Amazon API Gateway bereitgestellten Endpunkt aufruft.
Der Benutzer wird benachrichtigt, dass sein neues Konto mithilfe des Amazon Simple Email Service (SES) erfolgreich erstellt wurde.
Identifizieren Sie das AWS-Konto, in dem Sie diese Lösung bereitstellen möchten, und stellen Sie sicher, dass Sie in den folgenden Schritten die Details dieses Kontos angeben, wo immer dies erforderlich ist. Halten Sie Folgendes in Ihrer lokalen Befehlszeile bereit:
cdk bootstrap
über die Befehlszeile abgeschlossen werden.Führen Sie in Ihrem gewählten AWS-Konto die folgenden Schritte aus:
sudo docker info
erfolgen. Wenn Docker ausgeführt wird, werden Informationen zu Docker angezeigt.Hinweis: Unter einer Reihe von Annahmen auf monatlicher Basis würde die Ausführung dieser Arbeitslast geschätzte Stundenkosten von etwa 1,34 US-Dollar verursachen. Überprüfen Sie unbedingt die Preisdetails für jeden einzelnen Dienst, um zu verstehen, welche Kosten Ihnen für verschiedene Nutzungsstufen und Ressourcenkonfigurationen berechnet werden
Befolgen Sie die nachstehenden Anweisungen, um den Agenten in Ihrem AWS-Konto bereitzustellen:
./api/llm
chmod +x script.sh
./script.sh
aus und Ihr neues Repo wird in ECR erstellt und das Image wird bereitgestellt.Um die Tools-Infrastruktur in Ihrem AWS-Konto bereitzustellen, befolgen Sie die folgenden Anweisungen:
./infra
npm i
aus, um Knotenmodule zu installierennpm run build
aus, um Typescript in Javascript zu kompilierenLLMImageTag
ist das Tag des Docker-Images, das in der AWS-Konsole im ECR-Service zu finden ist. Geben Sie Ihre Parameterwerte ein. In Ihrem AWS-Konto wird ein CloudFormation Stack erstellt. cdk deploy --parameters SesBankEmail={email} --parameters SesCustomerEmail={email} --parameters LLMImageTag={tag}
Beispielverwendung:
cdk deploy --parameters [email protected] --parameters [email protected] --parameters LLMImageTag=20240307_123456
SesBankEmail
und SesCustomerEmail
gesendet, um die neu erstellten SES-Identitäten zu überprüfen. Bitte achten Sie darauf, auf den Bestätigungslink in der E-Mail zu klicken.CloudFrontDomainName
Hinweis: Wenn der CloudFormation Stack beim Warten auf den Abschluss der LLM-Bereitstellung hängen bleibt, ist Ihre ECS-Aufgabe möglicherweise fehlgeschlagen. Dies kann daran liegen, dass die Architektur der Maschine, auf der Sie das Image erstellt haben, nicht mit der Architektur übereinstimmt, die wir für die Verwendung in unserem Projekt konfiguriert haben (ARM64). Aktualisieren Sie in diesem Fall manuell die von der ECS-Aufgabendefinition verwendete Architektur (um möglicherweise stattdessen X86 zu verwenden).
Befolgen Sie die nachstehenden Anweisungen, um die Demoanwendung in Ihrem AWS-Konto bereitzustellen:
LLM_API_ENDPOINT
Konstante in App.js
in ./penny-ui/src/
durch CloudFrontDomainName
, der vom CloudFormation Stack ausgegeben wird../penny-ui
npm i
amplify init
amplify add hosting
amplify publish
Stellen Sie sicher, dass Sie den Schritt Deploy the Tools Infrastructure to AWS Account
abgeschlossen haben
Navigieren Sie zu ./api/llm
os.environ["kendraIndexId"]
durch die Kendra-Index-ID, die Sie in tools.py
verwenden möchtenos.environ["apiEndpoint"]
durch den vom CloudFormation Stack ausgegebenen API-Gateway-Endpunkt in tools.py
os.environ["idBucketName"]
durch den vom CloudFormation Stack erstellten S3-ID-Bucket-Namen in main.py
Führen Sie python3 -m uvicorn main:app --reload
. Die LLM-API wird unter http://127.0.0.1:8000/
verfügbar sein.
Navigieren Sie zu ./penny-ui
Führen Sie npm i
aus, um Abhängigkeiten zu installieren
Führen Sie npm run start
um den Entwicklungsserver zu starten. Die Demoanwendung wird unter http://localhost:3000/
Führen Sie die folgenden Schritte aus, um die Umgebung zu bereinigen und aus Ihrem Konto zu entfernen:
PennyInfraStack
lokal, indem Sie die folgenden Befehle ausführen. Dadurch werden automatisch alle mit dem PennyInfraStack
in Ihrem AWS-Konto verknüpften Stacks und Ressourcen gelöscht. cd ./infra
cdk destroy
Löschen Sie die folgenden S3-Buckets: ID-Bucket und AnyBank-Katalog-Bucket. Stellen Sie sicher, dass Sie den Eimer leeren, bevor Sie ihn löschen. Finden Sie diese Buckets, indem Sie nach den Präfixen pennyinfrastack-idbucket
und pennyinfrastack-anybankcatalogbucket
suchen.
Löschen Sie die auf Amplify gehostete Frontend-Anwendung, indem Sie amplify delete
ausführen.
Löschen Sie die Bildartefakte und das private Repository auf ECR mit dem Namen penny-workshop
.
Weitere Informationen finden Sie unter BEITRAGEN.
Diese Bibliothek ist unter der MIT-0-Lizenz lizenziert. Siehe die LICENSE-Datei.