在此儲存庫中,我們提出了一個解決方案,該解決方案利用生成式人工智慧的力量,透過數位助理簡化金融服務的用戶入門流程。銀行業新客戶的入職是客戶旅程中的關鍵一步,涉及一系列旨在滿足「了解您的客戶」(KYC) 要求、進行必要的驗證並向他們介紹銀行產品或服務的活動。傳統上,使用者引導是一個繁瑣且大量手動的過程。我們的解決方案提供了利用 AWS 上的生成式 AI 助理來應對這項挑戰的實用指導。
Amazon Bedrock 是一項完全託管的服務,透過單一 API 提供來自 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon 等領先 AI 公司的高效能基礎模型 (FM) 選擇,以及建立具有安全性、隱私性和負責任的人工智慧的生成式人工智慧應用所需的廣泛功能。我們使用 Amazon Bedrock 上的 Anthropic Claude 3.5 Sonnet 建立了一個名為 Amazon Penny 的數位助理,可以自動執行文書工作、身份驗證並透過對話互動吸引客戶。因此,客戶可以透過安全、自動化的工作流程在幾分鐘內加入。
申請流程如下:
使用者造訪 AWS Amplify 中託管的前端網站。
該網站調用 Amazon CloudFront 終端節點與數位助理 Penny 進行交互,該助理已容器化並部署在 AWS Fargate 中。
數位助理使用客製化的 Langchain Agent 來回答有關銀行產品和服務的問題並協調入職流程。代理程式使用的大型語言模型 (LLM) 是 Anthropic Claude 3.5 Sonnet,由 Amazon Bedrock 提供。
如果用戶詢問與銀行產品或服務相關的一般性問題,代理商將使用名為「產品搜尋工具」的自訂 Langchain 工具。該工具使用與包含銀行資料的 S3 資料來源連結的 Amazon Kendra。
如果使用者表示他們想開設一個新帳戶,代理商將提示使用者輸入電子郵件。一旦使用者做出回應,它將使用名為電子郵件驗證工具的自訂 Langchain 工具。該工具透過呼叫部署在 Amazon API Gateway 中的終端節點來檢查銀行的 Amazon DynamoDB 資料庫中是否存在現有帳戶。
電子郵件驗證後,將收集 KYC 信息,例如名字和姓氏。然後,系統會提示使用者輸入身分證明文件。該檔案已上傳到 Amazon S3。
代理程式將使用名為 ID 驗證工具的自訂 Langchain 工具。該工具透過呼叫 Amazon API Gateway 中部署的終端節點來檢查會話期間輸入的使用者詳細資訊是否與 ID 相符。透過使用 Amazon Textract 提取文件文字來驗證詳細資訊。
身份驗證後,系統會要求使用者拍攝自拍照。該圖像已上傳到 Amazon S3。然後,代理商將使用名為「自拍驗證工具」的自訂 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 編譯為 javascriptLLMImageTag
是 docker 映像的標籤,可以在 ECR 服務的 AWS 控制台中找到。輸入您的參數值。將在您的 AWS 帳戶中建立 CloudFormation Stack。 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
發送一封電子郵件,以驗證已建立的新 SES 身分。請務必點擊電子郵件中提供的驗證連結。CloudFrontDomainName
注意:如果 CloudFormation Stack 陷入等待 LLMDeployment 完成的狀態,則您的 ECS 任務可能已失敗。這可能是因為您建立映像的機器的體系結構與我們配置為在專案中使用的體系結構 (ARM64) 不符。在這種情況下,請手動更新 ECS 任務定義所使用的架構(可能改為使用 X86)。
若要將示範應用程式部署到您的 AWS 帳戶,請依照下列說明操作:
./penny-ui/src/
內App.js
中的LLM_API_ENDPOINT
常數值替換為 CloudFormation Stack 輸出的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 索引 IDtools.py
中的os.environ["apiEndpoint"]
替換為 CloudFormation Stack 輸出的 API 閘道端點main.py
中的os.environ["idBucketName"]
替換為 CloudFormation Stack 建立的 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 上託管的前端應用程式。
刪除 ECR 上名為penny-workshop
的映像工件和私人儲存庫。
請參閱貢獻以獲取更多資訊。
該庫根據 MIT-0 許可證獲得許可。請參閱許可證文件。