이 저장소에서는 Generative AI의 강력한 기능을 활용하여 디지털 보조자를 통해 금융 서비스에 대한 사용자 온보딩 프로세스를 간소화하는 솔루션을 제시합니다. 은행에 신규 고객을 온보딩하는 것은 고객 파악(KYC) 요구 사항을 충족하고, 필요한 확인을 수행하고, 은행의 상품이나 서비스를 소개하도록 설계된 일련의 활동을 포함하는 고객 여정에서 중요한 단계입니다. 전통적으로 사용자 온보딩은 지루하고 수동적인 프로세스였습니다. 우리 솔루션은 AWS의 Generative AI 도우미를 활용하여 이 문제를 해결하기 위한 실용적인 지침을 제공합니다.
Amazon Bedrock은 AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI 및 Amazon과 같은 주요 AI 기업의 고성능 기반 모델(FM)을 단일 API를 통해 선택할 수 있는 완전관리형 서비스입니다. 보안, 개인 정보 보호, 책임 있는 AI를 갖춘 생성적 AI 애플리케이션을 구축하는 데 필요한 광범위한 기능 세트입니다. Amazon Bedrock에서 Anthropic Claude 3.5 Sonnet을 사용하여 서류 작업, 신원 확인을 자동화하고 Amazon Penny라는 대화 상호 작용을 통해 고객과 소통하는 디지털 도우미를 구축합니다. 결과적으로 고객은 안전하고 자동화된 워크플로를 통해 몇 분 만에 온보딩할 수 있습니다.
신청의 흐름은 다음과 같습니다.
사용자는 AWS Amplify 내에 호스팅된 프런트엔드 웹 사이트에 액세스합니다.
웹 사이트는 Amazon CloudFront 엔드포인트를 호출하여 AWS Fargate에 컨테이너화 및 배포된 디지털 도우미 Penny와 상호 작용합니다.
디지털 비서는 맞춤형 Langchain Agent를 사용하여 은행의 제품 및 서비스에 대한 질문에 답변하고 온보딩 흐름을 조정합니다. 에이전트가 사용하는 LLM(Large Language Model)은 Amazon Bedrock에서 제공하는 Anthropic Claude 3.5 Sonnet입니다.
사용자가 은행의 상품이나 서비스와 관련된 일반적인 질문을 하면 상담원은 상품 검색 도구라고 하는 맞춤형 Langchain 도구를 활용합니다. 이 도구는 은행 데이터가 포함된 S3 데이터 소스와 연결된 Amazon Kendra를 사용합니다.
사용자가 새 계정을 개설하고 싶다고 표시하면 상담원은 사용자에게 이메일을 입력하라는 메시지를 표시합니다. 사용자가 응답하면 이메일 검증 도구라는 사용자 정의 Langchain 도구를 활용합니다. 이 도구는 Amazon API Gateway에 배포된 엔드포인트를 호출하여 은행의 Amazon DynamoDB 데이터베이스에 기존 계좌가 있는지 확인합니다.
이메일 검증 후 이름, 성 등 KYC 정보가 수집됩니다. 그런 다음 사용자에게 신원 문서를 입력하라는 메시지가 표시됩니다. 이는 Amazon S3에 업로드됩니다.
에이전트는 ID 확인 도구라는 사용자 정의 Langchain 도구를 활용합니다. 이 도구는 Amazon API Gateway에 배포된 엔드포인트를 호출하여 세션 중에 입력된 사용자 세부 정보가 ID와 일치하는지 확인합니다. 세부 정보는 Amazon Textract를 사용하여 문서 텍스트를 추출하여 확인됩니다.
신분증 확인 후 사용자에게 셀카를 요청합니다. 이미지가 Amazon S3에 업로드됩니다. 그런 다음 에이전트는 Selfie Verification Tool이라는 사용자 정의 Langchain 도구를 활용합니다. 이 도구는 Amazon API Gateway에 배포된 엔드포인트를 호출하여 업로드된 셀카가 ID의 얼굴과 일치하는지 확인합니다. Amazon Rekognition을 사용하여 얼굴 일치가 감지됩니다.
얼굴 확인이 성공한 후 에이전트는 계정 생성 도구라는 사용자 정의 Langchain 도구를 활용합니다. 이 도구는 Amazon API Gateway에 배포된 엔드포인트를 호출하여 은행의 Amazon DynamoDB 데이터베이스에 새 계정을 생성합니다.
사용자는 Amazon Simple Email Service(SES)를 사용하여 새 계정이 성공적으로 생성되었다는 알림을 받습니다.
이 솔루션을 배포하려는 AWS 계정을 식별하고 아래 단계에서 필요할 때마다 해당 계정의 세부 정보를 지정하십시오. 로컬 명령줄에서 다음을 준비하세요.
cdk bootstrap
실행하여 완료할 수 있습니다.선택한 AWS 계정에서 다음 단계를 완료하십시오.
sudo docker info
명령을 실행하여 수행할 수 있습니다. Docker가 실행 중이면 Docker에 대한 정보가 표시됩니다.참고: 월 단위로 가정한 일련의 가정에 따르면 이 워크로드를 실행하는 데 소요되는 시간당 비용은 약 $1.34입니다. 다양한 사용량 계층 및 리소스 구성에 대해 청구될 수 있는 비용을 이해하려면 각 개별 서비스의 가격 책정 세부정보를 확인하세요.
에이전트를 AWS 계정에 배포하려면 아래 지침을 따르십시오.
./api/llm
으로 이동합니다.chmod +x script.sh
./script.sh
스크립트를 실행하면 ECR에 새 저장소가 생성되고 이미지가 배포됩니다.도구 인프라를 AWS 계정에 배포하려면 아래 지침을 따르십시오.
./infra
로 이동하세요.npm i
실행하여 노드 모듈 설치npm run build
실행하여 TypeScript를 Javascript로 컴파일합니다.LLMImageTag
는 ECR 서비스 내의 AWS 콘솔에서 찾을 수 있는 도커 이미지의 태그입니다. 매개변수 값을 입력합니다. CloudFormation 스택이 AWS 계정에 생성됩니다. cdk deploy --parameters SesBankEmail={email} --parameters SesCustomerEmail={email} --parameters LLMImageTag={tag}
사용 예:
cdk deploy --parameters [email protected] --parameters [email protected] --parameters LLMImageTag=20240307_123456
SesBankEmail
및 SesCustomerEmail
로 이메일이 전송됩니다. 이메일에 포함된 확인 링크를 꼭 클릭해주세요.CloudFrontDomainName
복사합니다.참고: CloudFormation 스택이 LLMDeployment 완료를 기다리다가 멈춘 경우 ECS 작업이 실패했을 수 있습니다. 이는 이미지를 구축한 머신의 아키텍처가 프로젝트(ARM64)에서 사용하도록 구성한 아키텍처와 일치하지 않기 때문일 수 있습니다. 이 경우 ECS 작업 정의가 활용하는 아키텍처를 수동으로 업데이트하십시오(대신 X86을 사용하려면).
AWS 계정에 데모 애플리케이션을 배포하려면 아래 지침을 따르십시오.
./penny-ui/src/
내의 App.js
에 있는 LLM_API_ENDPOINT
상수 값을 CloudFormation 스택에서 출력된 CloudFrontDomainName
으로 바꿉니다../penny-ui
로 이동합니다. npm i
amplify init
amplify add hosting
amplify publish
Deploy the Tools Infrastructure to AWS Account
단계를 완료했는지 확인하십시오.
./api/llm
으로 이동합니다.
tools.py
에서 os.environ["kendraIndexId"]
사용하려는 Kendra 인덱스 ID로 바꾸십시오.os.environ["apiEndpoint"]
tools.py
의 CloudFormation 스택에서 출력된 API 게이트웨이 엔드포인트로 바꿉니다.os.environ["idBucketName"]
main.py
의 CloudFormation 스택에서 생성된 S3 ID 버킷 이름으로 바꿉니다. python3 -m uvicorn main:app --reload
실행합니다. LLM API는 http://127.0.0.1:8000/
에 게시됩니다.
./penny-ui
로 이동합니다.
npm i
실행하여 종속성을 설치합니다.
npm run start
실행하여 개발 서버를 시작하세요. 데모 애플리케이션은 http://localhost:3000/
에 게시됩니다.
계정에서 환경을 정리하고 제거하려면 다음 단계를 완료하십시오.
PennyInfraStack
로컬로 삭제합니다. 그러면 AWS 계정의 PennyInfraStack
과 연결된 모든 스택과 리소스가 자동으로 삭제됩니다. cd ./infra
cdk destroy
다음 S3 버킷(ID 버킷 및 AnyBank 카탈로그 버킷)을 삭제합니다. 삭제하기 전에 버킷을 비워야 합니다. 접두사 pennyinfrastack-idbucket
및 pennyinfrastack-anybankcatalogbucket
을 검색하여 이러한 버킷을 찾으세요.
amplify delete
실행하여 Amplify에서 호스팅되는 프런트엔드 애플리케이션을 삭제합니다.
이름이 penny-workshop
인 ECR에서 이미지 아티팩트와 개인 저장소를 삭제합니다.
자세한 내용은 기여를 참조하세요.
이 라이브러리는 MIT-0 라이선스에 따라 라이선스가 부여됩니다. 라이센스 파일을 참조하십시오.