This repository contains the code to create an Infrastructure to serve Deep Learning models
To build this infrastructure, Django and Celery are used along with RabbitMQ and TensorFlow. However, these tools can be replaced, for instance, Pytorch can be used instead of TensorFlow, or FastAPI instead of Django, Celery is harder to replace but not impossible.
This infrastructure is divided into two different servers, Server A and Server B. Server A receives the requests from users, and Server B serves the Deep Learning model.
In this repository, you can find the code for Server A (Django, Celery), and in this additional repository the code for Server B (Celery, TensorFlow, Docker).
Celery allows us to use the Publish-Subscribe Pattern to communicate Server A and Server B. A more detailed explanation can be found in this blog post.