fastapi-template
                                
                                 fastapi-template copied to clipboard
                                
                                    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.
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 directory
- loggerLogging module for application
- managerA 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
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 ๐.
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]