Building machine learning is hard. Using it shouldn't be.
Keplet is a non-intrusive CLI for developing and interacting with machine learning projects by scafolding common architectures and abstracting model management (e.g. dependencies, documentation, containerization). Keplet supports any model architecture and is compatible with any framework, making it easier to publish reproducable models and deploy pre-trained instances.
- Virtual environments provisioner for environment variables and dependencies
- Dataset directory cache for use across multiple projects
- File directory usage for project management
- Command line documentation (by using the
--help
flag) - Automatic REST API creation for model predictions over HTTP
Creating new project: keplet create chatbot --framework torch
🤖 New project named 'chatbot':
✨ Creating folder with kep.json...
✨ Cloning boilerplate files...
✨ Creating virtual environment...
✨ Generating README file...
✨ Installing torch...
🤖 Success! Access your project by running:
0. cd chatbot
1. source venv/bin/activate
2. pip install -r requirements.txt
3. keplet start
Resulting project architecture (with PyTorch-enabled virtual environment):
chatbot/
├── /venv # Virtual environment location
├── kep.json # Model/dataset definition and misc. metadata
├── data.py # Data loader from either Keplet cache or by path
├── model.py # Model class with interface to make predictions
├── server.py # REST API dynamically generated from kep.json config
├── requirements.txt # Dependency tracker for use with pip/anaconda
├── Dockerfile # Minimal Docker configuration for deployment
└── README.md # Boilerplate README.md with file instructions
Additionally, running keplet start
will launch a Flask server in server.py
. By default, the server listens at localhost:5000/predict
and returns JSON-encoded predictions over HTTP.
After installing Keplet using pip install keplet
:
Usage: manage.py [OPTIONS] COMMAND [ARGS]...
Options:
--help Learn more about the standard Keplet commands.
Commands:
init
list
create
start
train
predict
containerize
run
Where run
can execute scripts defined in kep.json
.
MIT