Skip to main content

No project description provided

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.12-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for gamr_backend_api_service-1.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 7d3030e593fee93a7958b425619b65e6d40abb360a4995cc96f6a4c1eb90c3f0
MD5 f8fb2be98af834bd58327412093dba8d
BLAKE2b-256 9b0b81f73936ffd363db38ae501fb3b966fef9ed0827383e58c6debc40cc4f04

See more details on using hashes here.

Provenance

The following attestation bundles were made for gamr_backend_api_service-1.0.12-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