mlserve -- turns python model into RESTful API with automatically generated UI.
Project description
mlserve
mlserve turns your python models into RESTful API, serves web page with form generated to match your input data.
It may be useful if one wants to demonstrate created predictive model and quickly integrate into existing application. Additionally UI is provided for input data (based on training dataframe) and simple dashboard.
Project is not complete but already usable, so no any guaranties on API or UI backward compatibility.
Online Demo
Several models deployed online using heroku.com/free free dynos. Free apps sleep automatically after 30 mins of inactivity so first request may take some time.
Ideas
mlsserve is small using following design based on following ideas:
Simplicity and ease of use is primary objective.
Application consists of two processes: IO process that runs HTTP server and responsible for fetching and sending data, as well as serve UI, other process (worker) is doing CPU intensive work related to predictions calculations.
Features
Model predictions serving via RESTful API endpoint.
Model predictions serving via generated UI.
Web page to simplify models usage.
Automatic UI generation to match your input data.
Simple dashboard for monitoring purposes.
Installation
Installation process is simple, just:
$ pip install git+https://github.com/jettify/mlserve.git
Example
To deploy model just follow following simple steps:
Save your model into pickle file:
with open('boston_gbr.pkl', 'wb') as f: pickle.dump(clf, f)
Use build_schema function to build UI representation of pandas dataframe, and save it as json file file:
import mlserve data_schema = mlserve.build_schema(df) with open('boston.json', 'wb') as f: json.dump(data_schema, f)
Create configuration file with following format:
models: - name: "boston_regressor" # url friendly name description: "Boston GBR" # optional model description model_path: "boston_gbr.pkl" # path to your saved model data_schema_path: "boston.json" # path to data representation target: "target" # name of the target column
Serve model:
$ mlserve -c models.yaml
Thats it, model is available throw REST API, you can test is with curl command:
$ curl --header "Content-Type: application/json" --request POST --data '[{"feature1": 1, "feature2": 2}]' http://127.0.0.1:9000/api/v1/models/boston_gradient_boosting_regressor/predict
UI is available via http://127.0.0.1:9000
Supported Frameworks
Scikit-Learn
Keras (planning)
PyTorch (planning)
Requirements
CHANGES
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.