Skip to main content

An example Python package

Project description

Image-Recognition-App

This app is an example of a pure MLOps probelm solving. The purpose of the app is to input an image and via a MobileNet predict the objects in it. Originally it consisted on two separate components:

  • A standalone Python package with the OpenCV model.
  • A server side API developed with FastAPI that consumes de model package, deployed in Vercel
  • A dummy client side developed with HTML, CSS and Javascript deployed in GitHub Pages.

However, Vercel supports until 250MB of app size, and the model package, which uses OpenCV and another ML libraries, exceeded that number. Then, another solution had to be found. The model package was transformed into another API developed in Gradio and hosted in the free service Hugging Face. Then, the first API now consumes from this second API. Moreover, the image sending handling had to be changed, consisting in several transformations between lists, JSON strings and byte objects.

The resulting architecture is as follows:

  1. A dummy client side developed with HTML, CSS and Javascript deployed in GitHub Pages that calls API_1.
  2. An API_1 developed with FastAPI hosted in Vercel that calls API_2.
  3. An API_2 that hosts the model, developed with Gradio and hosted in Hugging Face.
  4. A Python package with the model, unused and replaced by API_2 because of hardware limitations.

API_1 supports automated CI/CD in GitHub Actions. Building includes installing of dependencies, testing in Pytest, formatting with black and linter. Deployment includes both GitHub Pages and Vercel.

The model Python package supports automated CI/CD in GitHub Actions. Building inludes installing of dependencies, testing in Pytest, formatting with black and linter and package building with setuptools. Deployment includes publishing to PyPI with Twine.

FULL TECHNOLOGIES STACK

[API]

  • FastAPI
  • Uvicorn
  • Gradio

[Machine Learning]

  • Numpy
  • matplotlib
  • Pillow
  • OpenCV

[Services]

  • GitHub Actions
  • Vercel
  • Hugging Face
  • PyPI

[Testing, formatting and building]

  • Pytest
  • Flake8
  • Black
  • Pre-commit
  • setuptools
  • Twine

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gamr_backend_api_service-1.0.6-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file gamr_backend_api_service-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for gamr_backend_api_service-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ef73ffb9c65bb20f4811d3f53603e394c435950e5a614cc7945b5006c1957db0
MD5 d45e27010a8ab04a4254903d28fdc8f5
BLAKE2b-256 d0c884710b2e90bcea805899a67015fa797d2ebf02ded5fc60daf0eb3f4d5659

See more details on using hashes here.

Provenance

The following attestation bundles were made for gamr_backend_api_service-1.0.6-py3-none-any.whl:

Publisher: pipeline.yml on gastonamengual/GAMR-Backend-Service-Vercel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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