This repository contains a full multimodal application using AWS CDK as IaC, Claude 3 Sonnet as multimodal model, and DynamoDB as storage.
For detailed project descriptions, refer to this Medium article.
Main Steps
- Data Ingestion: Load data to an S3 Bucket
- Model: Claude 3 Sonnet in AWS Bedrock
- Messaging: AWS SQS
- Storage: AWS DynamoDB
- Notifications: AWS SNS
- IaC: AWS CDK
Feel free to ⭐ and clone this repo 😉
The project has been structured with the following files:
data:
sample scanned billapp.py:
AWS CDK synthesizeraws_multimodal_bedrock_dynamodb_stack:
script to create the constructs and stacklambda:
lambda functionsrequirements.txt:
project requirements
The Python version used for this project is Python 3.11. You can follow along the medium article.
-
Create an empty respository locally. This is necessary to initialize CDK. Afterwards you can copy the files from this repository.
-
Initialize AWS CDK to create the project structure:
cdk init app --language python
-
Create the virtual environment named
main-env
using Conda with Python version 3.11:conda create -n main-env python=3.11 conda activate main-env
-
Install the requirements.txt:
pip install -r requirements.txt
-
Synthesize the app:
cdk synth
-
Bootstrap the app to provision S3, and IAM roles:
cdk bootstrap aws://{Account ID:}/{region}
-
Deploy the app on AWS CDK
cdk deploy
-
Upload the scanned bill into the S3 Bucket and check that you receive a notification in your email (add your email in the aws_multimodal_bedrock_dynamodb_stack file before deployment)
-
Clean up
cdk destroy