Infrastructure for AI applications and machine learning pipelines
Project description
PackYak
Packyak makes it easy to build Lakehouses, Data Pipelines and and AI applications on AWS.
Roadmap
-
StreamlitSite
- deploy a Streamlit application to ECS with VPC and Load Balancing - Infer least privilege IAM Policies for Streamlit scripts (
home.py
,pages/*.py
) -
@function
- host an Lambda Function - Infer least privilege IAM Policies for functions
-
Bucket
- work with files in S3, attach event handlers -
Queues
- send messages to, attach event handlers -
Stream
- send and consume records through AWS Kinesis -
Table
- store structured data (Parquet, Orc, etc.) in a Glue Catalog. Model data usingpydantic
-
@asset
- build data pipelines with dependency graphs -
@train
- capture the inputs and outputs of a function for ML training and human feedback - Generate audit reports for HIPAA and GDPR compliance policies
Installation
Pre-requisites
- Docker (for bundling Python applications for the target runtime, e.g. in an Amazon Linux Lambda Function)
- Python Poetry
curl -sSL https://install.python-poetry.org | python3 -
poetry-plugin-export
- see https://python-poetry.org/docs/plugins/#using-plugins
poetry self add poetry-plugin-export
How To: Deploy Streamlit
Custom Domain
- Create a Hosted Zone
- Transfer the DNS nameservers from your DNS provider to the Hosted Zone
- Create a Certificate
HTTPS
- Create a Certificate via the AWS Console
Example
🔧 Note: Packyak is in active development. Not all features are implemented. Check back to see the following example grow.
Below is the most simple Packyak application: a Bucket with a Function that writes to it.
Your application's infrastructure is declared in code. The Packyak compiler analyzes it to auto-provision cloud resources (in this case AWS S3 Bucket and Lambda Function) with least privilege IAM Policy inference.
from packyak import Bucket, function
videos = Bucket("videos")
@function()
async def upload_video():
await videos.put("key", "value")
@videos.on("create")
async def on_uploaded_video(event: Bucket.ObjectCreatedEvent):
video = await videos.get(event.key)
transcription
@asset()
async def transcribed_videos():
...
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file packyak-0.1.2.tar.gz
.
File metadata
- Download URL: packyak-0.1.2.tar.gz
- Upload date:
- Size: 18.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b93c473d09ad80410c48caef1c047f67ae3da56d83a02e5e754bf8c7e6e9cabe |
|
MD5 | 9ab8c5bc7876d4f5c5ec0daf34b0f074 |
|
BLAKE2b-256 | 3ed69f4ee0c37bdc729cd67a05509345da9db581fb07c9e41038a01a39d72d2c |
File details
Details for the file packyak-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: packyak-0.1.2-py3-none-any.whl
- Upload date:
- Size: 24.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.11.6 Darwin/23.2.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 927c36220ad958909aa5afbd1127fd143a24bebe8191998a1df9076252495bd1 |
|
MD5 | 03d88d646cca71856c0946636f88ac45 |
|
BLAKE2b-256 | 1a0c17d2cbfe79630e2a3299e9119a51f37ebabccf060e9b2ee39e741e998437 |