Katana project is a template for ASAP 🚀 ML application deployment

Overview

Katana Cover

Introduction 🌻

Katana project is a template for ASAP 🚀 ML application deployment

Checkout demo at- https://katana-demo.herokuapp.com/

Features 🎉

  1. FastAPI inbuilt
  2. Swagger UI and uvicorn integration
  3. Docker ready configuration
  4. Integrated GitHub actions
  5. Production ready code 🚀

Set-up Instructions 🔧

We recommend using flask default serving for development and uvicorn server for production

We included following setup instructions;

  1. Local development
  2. Docker supported deployment

Local Development 👨🏻‍💻

  1. Clone this repo with [email protected]:shaz13/katana.git
  2. Set up environment using python3 -m venv .env
  3. Activate envrionment using
# Linux / Mac / Unix
$ source .env/bin/activate

# Windows
$ \.env\Scripts\activate
  1. Install requirements using pip install -r requirements.txt
  2. For debugging run from root - python main.py
  3. Deploy using Procfile or bash scripts/launch.sh
  4. Your API is being served at localhost:9000

Docker Setup

  1. Clone this repo with [email protected]:shaz13/katana.git
  2. Install docker in your system
  3. Run docker-compose up
  4. Your local port is mapped and being served at localhost:9000

Capture

Contributors 😎

  1. Mohammad Shahebaz - @shaz13
  2. Aditya Soni - @AdityaSoni19031997

License 👩🏻‍💼

MIT License

You might also like...
A simple application that calculates the probability distribution of a normal distribution
A simple application that calculates the probability distribution of a normal distribution

probability-density-function General info An application that calculates the probability density and cumulative distribution of a normal distribution

Predicting Baseball Metric Clusters: Clustering Application in Python Using scikit-learn
Predicting Baseball Metric Clusters: Clustering Application in Python Using scikit-learn

Clustering Clustering Application in Python Using scikit-learn This repository contains the prediction of baseball metric clusters using MLB Statcast

A machine learning web application for binary classification using streamlit
A machine learning web application for binary classification using streamlit

Machine Learning web App This is a machine learning web application for binary classification using streamlit options this application contains 3 clas

A project based example of Data pipelines, ML workflow management, API endpoints and Monitoring.
A project based example of Data pipelines, ML workflow management, API endpoints and Monitoring.

MLOps template with examples for Data pipelines, ML workflow management, API development and Monitoring.

We have a dataset of user performances. The project is to develop a machine learning model that will predict the salaries of baseball players.
We have a dataset of user performances. The project is to develop a machine learning model that will predict the salaries of baseball players.

Salary-Prediction-with-Machine-Learning 1. Business Problem Can a machine learning project be implemented to estimate the salaries of baseball players

My project contrasts K-Nearest Neighbors and Random Forrest Regressors on Real World data

kNN-vs-RFR My project contrasts K-Nearest Neighbors and Random Forrest Regressors on Real World data In many areas, rental bikes have been launched to

Can a machine learning project be implemented to estimate the salaries of baseball players whose salary information and career statistics for 1986 are shared?

END TO END MACHINE LEARNING PROJECT ON HITTERS DATASET Can a machine learning project be implemented to estimate the salaries of baseball players whos

Exemplary lightweight and ready-to-deploy machine learning project

Exemplary lightweight and ready-to-deploy machine learning project

A machine learning project that predicts the price of used cars in the UK
A machine learning project that predicts the price of used cars in the UK

Car Price Prediction Image Credit: AA Cars Project Overview Scraped 3000 used cars data from AA Cars website using Python and BeautifulSoup. Cleaned t

Comments
  • Feature Request : Custom Artifacts Upload for Scikit/XGB Inference

    Feature Request : Custom Artifacts Upload for Scikit/XGB Inference

    • [ ] Lets me upload joblib/pkl file (FEATURE REQUEST) for scikit/xgb trained models.
    • [x] I am allowed to edit a payload json.
    • [x] Hit on Execute to perform inference on my joblib model with the pred_input.json as input and printout status(200 Success) and confidence/other metrics.

    The above can be done using GCS where I have to create a bucket and use their AI Platform for prediction phase. However that is not beginner-friendly and requires a lot of preliminary GCP setups and API enabling overheads.

    Please look into this @shaz13 @shaz13-socgen @AdityaSoni19031997

    feature-request no-issue-activity 
    opened by ucalyptus 5
  • Cleaning up Train and Inference

    Cleaning up Train and Inference

    IMO, we have to further clean-up the training and inference part.

    Open to debate to have this structure -- current apis --> app (rename) core folder --> moved to (app/core/)

    The current core folder is not accessible from in APIs controls. Also, its bad practise importing the top-level package. @AdityaSoni19031997

    • Core is exposed in the root. When the part should be hidden in-app/ or similar structure. Both in keeping favour of structure and security part.

    Let me know if you have any better structure in place

    no-issue-activity 
    opened by shaz13 3
  • Add api versioning and blueprint

    Add api versioning and blueprint

    Current app base url has no versioning according to swagger design standards. The PR should address it and have current endpoints work with /api/v1 route

    enhancement 
    opened by shaz13 1
  • Bump fastapi from 0.63.0 to 0.65.2

    Bump fastapi from 0.63.0 to 0.65.2

    Bumps fastapi from 0.63.0 to 0.65.2.

    Release notes

    Sourced from fastapi's releases.

    0.65.2

    Security fixes

    This change fixes a CSRF security vulnerability when using cookies for authentication in path operations with JSON payloads sent by browsers.

    In versions lower than 0.65.2, FastAPI would try to read the request payload as JSON even if the content-type header sent was not set to application/json or a compatible JSON media type (e.g. application/geo+json).

    So, a request with a content type of text/plain containing JSON data would be accepted and the JSON data would be extracted.

    But requests with content type text/plain are exempt from CORS preflights, for being considered Simple requests. So, the browser would execute them right away including cookies, and the text content could be a JSON string that would be parsed and accepted by the FastAPI application.

    See CVE-2021-32677 for more details.

    Thanks to Dima Boger for the security report! 🙇🔒

    Internal

    0.65.1

    Security fixes

    0.65.0

    Breaking Changes - Upgrade

    • ⬆️ Upgrade Starlette to 0.14.2, including internal UJSONResponse migrated from Starlette. This includes several bug fixes and features from Starlette. PR #2335 by @​hanneskuettner.

    Translations

    Internal

    0.64.0

    Features

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Mohammad Shahebaz
@Kaggle Grandmaster | CFDS @datarobot | OSS @scikit-learn, @oppia
Mohammad Shahebaz
Model Validation Toolkit is a collection of tools to assist with validating machine learning models prior to deploying them to production and monitoring them after deployment to production.

Model Validation Toolkit is a collection of tools to assist with validating machine learning models prior to deploying them to production and monitoring them after deployment to production.

FINRA 25 Dec 28, 2022
learn python in 100 days, a simple step could be follow from beginner to master of every aspect of python programming and project also include side project which you can use as demo project for your personal portfolio

learn python in 100 days, a simple step could be follow from beginner to master of every aspect of python programming and project also include side project which you can use as demo project for your personal portfolio

BDFD 6 Nov 5, 2022
The project's goal is to show a real world application of image segmentation using k means algorithm

The project's goal is to show a real world application of image segmentation using k means algorithm

null 2 Jan 22, 2022
Machine learning template for projects based on sklearn library.

Machine learning template for projects based on sklearn library.

Janez Lapajne 17 Oct 28, 2022
Traingenerator 🧙 A web app to generate template code for machine learning ✨

Traingenerator ?? A web app to generate template code for machine learning ✨ ?? Traingenerator is now live! ??

Johannes Rieke 1.2k Jan 7, 2023
(3D): LeGO-LOAM, LIO-SAM, and LVI-SAM installation and application

SLAM-application: installation and test (3D): LeGO-LOAM, LIO-SAM, and LVI-SAM Tested on Quadruped robot in Gazebo ● Results: video, video2 Requirement

EungChang-Mason-Lee 203 Dec 26, 2022
A Python-based application demonstrating various search algorithms, namely Depth-First Search (DFS), Breadth-First Search (BFS), and A* Search (Manhattan Distance Heuristic)

A Python-based application demonstrating various search algorithms, namely Depth-First Search (DFS), Breadth-First Search (BFS), and the A* Search (using the Manhattan Distance Heuristic)

null 17 Aug 14, 2022
using Machine Learning Algorithm to classification AppleStore application

AppleStore-classification-with-Machine-learning-Algo- using Machine Learning Algorithm to classification AppleStore application. the first step : 1: p

Mohammed Hussien 2 May 2, 2022
Combines MLflow with a database (PostgreSQL) and a reverse proxy (NGINX) into a multi-container Docker application

Combines MLflow with a database (PostgreSQL) and a reverse proxy (NGINX) into a multi-container Docker application (with docker-compose).

Philip May 2 Dec 3, 2021