Skip to content

FastAPI Skeleton App to serve machine learning models production-ready.

License

Notifications You must be signed in to change notification settings

abodacs/fastapi-ml-skeleton

 
 

Repository files navigation

FastAPI Model Server Skeleton

Serving machine learning models production-ready, fast, easy and secure powered by the great FastAPI by Sebastián Ramírez](https://github.com/tiangolo).

This repository contains a skeleton app which can be used to speed-up your next machine learning project. The code is fully tested and provides a preconfigured tox to quickly expand this sample code.

To experiment and get a feeling on how to use this skeleton, a sample regression model for house price prediction is included in this project. Follow the installation and setup instructions to run the sample model and serve it aso RESTful API.

Requirements

  • Docker
  • Docker Compose

Installation

  • Start the stack with Docker Compose:
make build

Setup

  1. Duplicate the .env.example file and rename it to .env

  2. In the .env file configure the API_KEY entry. The key is used for authenticating our API.
    A sample API key can be generated using Python REPL:

import uuid
print(str(uuid.uuid4()))

Run It

  1. Start your app with:
make up
  1. Go to http://localhost:8888/docs.

  2. Click Authorize and enter the API key as created in the Setup step. Authroization

  3. You can use the sample payload from the docs/sample_payload.json file when trying out the house price prediction model using the API. Prediction with example payload

Run Tests

If you're not using tox, please install with:

pip install tox

Run your tests with:

tox

This runs tests and coverage for Python 3.6 and Flake8, Autopep8, Bandit.

About

FastAPI Skeleton App to serve machine learning models production-ready.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 73.3%
  • Shell 12.7%
  • Dockerfile 8.7%
  • Makefile 5.3%