Skip to main content

porter is a framework for exposing machine learning models via REST APIs.

Project description

porter

Testing Unit Tests
Documentation Documentation Status
Meta License PyPI Python

porter is a framework for data scientists who want to quickly and reliably deploy machine learning models as REST APIs.

Simplicity is a core goal of this project. The following 6 lines of code are a fully functional example. While this should the most common use case, porter is also designed to be easily extended to cover the remaining cases not supported out of the box.

from porter.datascience import WrappedModel
from porter.services import ModelApp, PredictionService

my_model = WrappedModel.from_file('my-model.pkl')
prediction_service = PredictionService(model=my_model, name='my-model', api_version='v1')

app = ModelApp([prediction_service])
app.run()

Features include:

  • Practical design: suitable for projects ranging from proof-of-concept to production grade software.
  • Framework-agnostic design: any object with a predict() method will do, which means porter plays nicely with sklearn, keras, or xgboost models. Models that don't fit this pattern can be easily wrapped and used in porter.
  • OpenAPI integration: lightweight, Pythonic schema specifications support automatic validation of HTTP request data and generation of API documentation using Swagger.
  • Boiler plate reduction: porter takes care of API logging and error handling out of the box, and supports streamlined model loading from .pkl and .h5 files stored locally or on AWS S3.
  • Robust testing: a comprehensive test suite ensures that you can use porter with confidence. Additionally, porter has been extensively field tested.

Installation

porter can be installed with pip for python3.9 and higher as follows:

pip install porter-schmorter  # because porter was taken

For more details, see this page.

Documentation

For more information, see the documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

porter_schmorter-0.16.8.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

porter_schmorter-0.16.8-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file porter_schmorter-0.16.8.tar.gz.

File metadata

  • Download URL: porter_schmorter-0.16.8.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for porter_schmorter-0.16.8.tar.gz
Algorithm Hash digest
SHA256 da8fb0447f6a37638bda61aa20d9fc7b59cd6f312a4af1f4e99393b8353bbf59
MD5 cb8b9f9b4d7237a1961c43b7d6547ad3
BLAKE2b-256 1fb3df672045b918ae182752b2b85ca95f8cf66b5dcd807654fd0294ed8dad56

See more details on using hashes here.

File details

Details for the file porter_schmorter-0.16.8-py3-none-any.whl.

File metadata

File hashes

Hashes for porter_schmorter-0.16.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7ddaf962701f7f1d3871e08ac9778e4645cee84e4a9c12a87c7001d5a0d8dfec
MD5 620e722c32a287075379ac41410a8b0d
BLAKE2b-256 167dbc557d9f072adf47d0f63d3ee7b11931bc8bbc8f4bb15464d8e34b598cba

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page