Skip to main content

Deserve is a nanoframework for serving ML models

Project description

Deserve

Deserve is a nanoframework for serving ML models. Flasker than Flask, faster than FastAPI, Deserve is asynchronous, lightweight and simple.

Features

  • 🤙 Remote procedure call (RPC) architecture. There are no endpoints, methods, paths, nor resources to make decisions about — just the host:port.
  • 📦 Send JSON, receive JSON, client-side. Accept a Python object, return an object, server-side. Conversions happen under the hood.

Installing

$ pip install deserve

Also install an ASGI server such as Uvicorn or Hypercorn.

$ pip install hypercorn

Quickstart

This example uses the 🤗 Transformers library.

# Save this as example.py
import deserve
from transformers import pipeline

# Load your model
classifier = pipeline('sentiment-analysis')

@deserve
async def predict(payload: object) -> object:
    return classifier(payload)

Run the server using the names of your file (example.py) and function (predict).

$ hypercorn example:predict

[INFO] Running on http://127.0.0.1:8000

Get some predictions.

$ curl localhost:8000 --data '["This is the simplest framework.", "You deserve it!"]'

[{"label": "POSITIVE", "score": 0.799}, {"label": "POSITIVE", "score": 0.998}]

Serialization and deserialization

Deserve takes care of converting the request and response payloads based on the content-type and accept headers of the request.

List of supported content-types and the deserialized payload that is passed to the inference handler.

content-type Payload
application/json dict/list
text/* raw
image/* binary
audio/* binary

List of supported accept headers and the serialized payload that is returned.

accept Payload
application/json JSON
text/* raw
image/* binary
audio/* binary

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

deserve-0.2.tar.gz (4.8 kB view hashes)

Uploaded Source

Built Distribution

deserve-0.2-py2.py3-none-any.whl (3.6 kB view hashes)

Uploaded Python 2 Python 3

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