Neste repositório, apresentamos uma solução que aproveita o poder da IA generativa para agilizar o processo de integração de usuários para serviços financeiros por meio de um assistente digital. A integração de novos clientes no banco é uma etapa crucial na jornada do cliente, envolvendo uma série de atividades destinadas a cumprir os requisitos do Know-Your-Customer (KYC), realizar as verificações necessárias e apresentá-los aos produtos ou serviços do banco. Tradicionalmente, a integração do usuário tem sido um processo tedioso e altamente manual. Nossa solução fornece orientação prática para enfrentar esse desafio, aproveitando um assistente de IA generativa na AWS.
O Amazon Bedrock é um serviço totalmente gerenciado que oferece uma variedade de modelos básicos (FMs) de alto desempenho de empresas líderes de IA, como AI21 Labs, Anthropic, Cohere, Meta, Mistral AI, Stability AI e Amazon por meio de uma única API, juntamente com um amplo conjunto de recursos necessários para criar aplicativos generativos de IA com segurança, privacidade e IA responsável. Usando o Anthropic Claude 3.5 Sonnet no Amazon Bedrock, construímos um assistente digital que automatiza a papelada, as verificações de identidade e envolve os clientes por meio de interações conversacionais, chamado Amazon Penny. Como resultado, os clientes podem ser integrados em questão de minutos por meio de fluxos de trabalho seguros e automatizados.
O fluxo da aplicação é o seguinte:
Os usuários acessam o site front-end hospedado no AWS Amplify.
O site invoca um endpoint Amazon CloudFront para interagir com o assistente digital Penny, que é conteinerizado e implantado no AWS Fargate.
O assistente digital utiliza um Agente Langchain customizado para responder dúvidas sobre os produtos e serviços do banco e orquestrar o fluxo de integração. O Large Language Model (LLM) utilizado pelo agente é o Anthropic Claude 3.5 Sonnet, fornecido pela Amazon Bedrock.
Se o usuário fizer uma pergunta geral relacionada aos produtos ou serviços do banco, o agente utilizará uma ferramenta Langchain personalizada chamada Ferramenta de Pesquisa de Produto. Esta ferramenta utiliza o Amazon Kendra vinculado a uma fonte de dados S3 que contém os dados do banco.
Se o usuário indicar que gostaria de abrir uma nova conta, o agente solicitará o e-mail do usuário. Assim que o usuário responder, ele utilizará uma ferramenta Langchain personalizada chamada Ferramenta de validação de e-mail. Esta ferramenta verifica se existe uma conta existente no banco de dados Amazon DynamoDB do banco, chamando um endpoint implantado no Amazon API Gateway.
Após a validação do e-mail, são coletadas informações KYC, como nome e sobrenome. Em seguida, o usuário é solicitado a fornecer um documento de identidade. Isso é carregado no Amazon S3.
O agente utilizará uma ferramenta Langchain personalizada chamada ferramenta de verificação de identificação. Essa ferramenta verifica se os detalhes do usuário inseridos durante a sessão correspondem ao ID, chamando um endpoint implantado no Amazon API Gateway. Os detalhes são verificados extraindo o texto do documento usando Amazon Textract.
Após a verificação da identidade, o usuário é solicitado a tirar uma selfie. A imagem é carregada no Amazon S3. Em seguida, o agente utilizará uma ferramenta Langchain personalizada chamada Ferramenta de Verificação de Selfie. Essa ferramenta verifica se a selfie carregada corresponde ao rosto no ID, chamando um endpoint implantado no Amazon API Gateway. A correspondência facial é detectada usando o Amazon Rekognition.
Depois que a verificação facial for bem-sucedida, o agente utilizará uma ferramenta Langchain personalizada chamada Ferramenta de Criação de Conta. Esta ferramenta cria uma nova conta no banco de dados Amazon DynamoDB do banco, chamando um endpoint implantado no Amazon API Gateway.
O usuário é notificado de que sua nova conta foi criada com sucesso, usando o Amazon Simple Email Service (SES).
Identifique a conta da AWS onde você gostaria de implantar esta solução e certifique-se de especificar os detalhes dessa conta sempre que necessário nas etapas abaixo. Tenha o seguinte pronto em sua linha de comando local:
cdk bootstrap
na linha de comando.Na conta AWS escolhida, conclua as seguintes etapas:
sudo docker info
. Se o Docker estiver em execução, as informações sobre o Docker serão exibidas.Observação: de acordo com um conjunto de suposições feitas mensalmente, a execução dessa carga de trabalho teria um custo por hora estimado em cerca de US$ 1,34. Certifique-se de verificar os detalhes de preços de cada serviço individual para entender os custos que podem ser cobrados para diferentes níveis de uso e configurações de recursos
Para implantar o agente em sua conta AWS, siga as instruções abaixo:
./api/llm
chmod +x script.sh
./script.sh
e seu novo repositório será criado no ECR e a imagem será implantada.Para implantar a infraestrutura de ferramentas em sua conta AWS, siga as instruções abaixo:
./infra
npm i
para instalar módulos de nónpm run build
para compilar TypeScript para JavaScriptLLMImageTag
é a tag da imagem docker que pode ser encontrada no console AWS dentro do serviço ECR. Insira os valores dos seus parâmetros. Uma pilha CloudFormation será criada em sua conta AWS. cdk deploy --parameters SesBankEmail={email} --parameters SesCustomerEmail={email} --parameters LLMImageTag={tag}
Exemplo de uso:
cdk deploy --parameters [email protected] --parameters [email protected] --parameters LLMImageTag=20240307_123456
SesBankEmail
e SesCustomerEmail
que você forneceu para verificar as novas identidades SES criadas. Certifique-se de clicar no link de verificação fornecido no e-mail.CloudFrontDomainName
gerado pela pilha do CloudFormationObservação: se o CloudFormation Stack ficar parado aguardando a conclusão do LLMDeployment, é possível que sua tarefa ECS tenha falhado. Isso pode ocorrer porque a arquitetura da máquina na qual você construiu a imagem não corresponde à que configuramos para ser usada em nosso projeto (ARM64). Nesse caso, atualize manualmente a arquitetura que a definição de tarefa do ECS utiliza (para possivelmente usar o X86).
Para implantar o aplicativo de demonstração em sua conta AWS, siga as instruções abaixo:
LLM_API_ENDPOINT
em App.js
em ./penny-ui/src/
pelo CloudFrontDomainName
gerado pela pilha do CloudFormation../penny-ui
npm i
amplify init
amplify add hosting
amplify publish
Certifique-se de ter concluído a etapa Deploy the Tools Infrastructure to AWS Account
Navegue para ./api/llm
os.environ["kendraIndexId"]
pelo ID do índice Kendra que você gostaria de usar, em tools.py
os.environ["apiEndpoint"]
pelo API Gateway Endpoint gerado pelo CloudFormation Stack, em tools.py
os.environ["idBucketName"]
pelo nome do bucket de ID S3 criado pelo CloudFormation Stack, em main.py
Execute python3 -m uvicorn main:app --reload
. A API LLM estará ativa em http://127.0.0.1:8000/
Navegue para ./penny-ui
Execute npm i
para instalar dependências
Execute npm run start
para iniciar o servidor de desenvolvimento/O aplicativo de demonstração estará disponível em http://localhost:3000/
Conclua as etapas a seguir para limpar e remover o ambiente da sua conta:
PennyInfraStack
localmente executando os comandos a seguir. Isso excluirá automaticamente todas as pilhas e recursos associados ao PennyInfraStack
em sua conta AWS. cd ./infra
cdk destroy
Exclua os seguintes buckets S3 - ID Bucket e AnyBank Catalog Bucket. Esvazie o bucket antes de excluí-lo. Encontre esses buckets pesquisando os prefixos pennyinfrastack-idbucket
e pennyinfrastack-anybankcatalogbucket
.
Exclua o aplicativo front-end hospedado no Amplify executando amplify delete
.
Exclua os artefatos de imagem e o repositório privado no ECR com o nome penny-workshop
.
Consulte CONTRIBUINDO para obter mais informações.
Esta biblioteca está licenciada sob a licença MIT-0. Veja o arquivo LICENÇA.