fastapi-template
fastapi-template copied to clipboard
Completely Scalable FastAPI based template for Machine Learning, Deep Learning and any other software project which wants to use Fast API as an API framework.
trafficstars
Fast-API ๐
Why This ? ๐คจ
Need Clean and Scalable Code Architecture for ML/DL and NLP driven micro-service based Projects ?
Introduction: Structuring of API
-
api_template:Contains all the API related Code Base.manage.py:Only entry point for API. Contains no logic..env:Most important file for your api and contains global configs. Acoid using application/variable level configs here.application:It contains all your api related codes and test modules. I prefer keeping application folder at global.logs: Logs is self-explanatory. FYI it will not contain any configuration information, just raw logs. Feel free to move according to your comfort but not inside the application folder.models:As a part of Machine-Learning/ Deep-Learning app you might need to add model files here or if you have huge files on cloud add symlinks if possibles.resources:To store any documentation, application related csv/txt/img files etc.settings:Logger/DataBase/Model global settings files in yaml/json format.
-
application:main:priority folder of all your application related code.๐ infrastructure:Data Base and ML/DL models related backbone code๐ฎ routers:API routers and they strictly do not contain any business logic๐ก services:All processing and business logic for routers here at service layerโ utility:config_loaderLoad all application related config files from settings directoryloggerLogging module for applicationmanagerA manager utility for Data Related Task which can be common for different services
๐ config.py:Main config of application, inherits all details from .env file
test:Write test cases for your application here.initializer.py:Preload/Initialisation of Models and Module common across application. Preloading model improves inferencing.
Running Locally ? ๐
Run Command uvicorn manage:app --host 0.0.0.0 --port 8000
Docker Support ๐ณ
docker build -t fastapi-image .
docker run -d --name fastapi-container -p 8000:8000 fastapi-image
Sample Demo App ~ Powered by Streamlit โก๏ธ
Always good to have an interface to show a quick demo ๐.
Note: manage.py runs the streamlit app as a subprocess. feel free to move it as per your need.
What is new ?
- Form Support for Image Classification

- Cutelogs GUI Integration for Easy LogsView

Drop me email for any queries on [email protected]