fastapi-template
# 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_loader` Load all application related config files from settings directory - `logger` Logging module for application - `manager` A 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]**