Skip to content

antra0497/Modalysis

Repository files navigation

Cloud Computing: MiniProject - Modalysis

Team: Akansh Katyayan Antra Tripathi Yash Desai Yashowardhan Rungta Soumi Chatterjee

Project Aim:

Creating a Cloud based Flask application using state-of-the-art Machine Learning models to perform classification tasks and text summarisation with a user management system.

Description:

Tech Stack

Heroku

Bart Summarization:

Summarization strategies are typically categorized as extractive, abstractive or mixed.

  • Extractive strategies select the top N sentences that best represent the key points of the article.
  • Abstractive summaries seek to reproduce the key points of the article in new words.

Extractive summarization is a challenging NLP task that has only recently become practical by transformer models like BART. It is a denoising autoencoder for pretraining sequence-to-sequence models. BART is trained by

  • corrupting text with an arbitrary noising function, and
  • learning a model to reconstruct the original text.

It uses a standard Tranformer-based neural machine translation architecture which, despite its simplicity, can be seen as generalizing BERT Bart uses a standard seq2seq/machine translation architecture with a bidirectional encoder (like BERT) and a left-to-right decoder (like GPT)

Setup: Local Deployment

git clone https://github.com/antra0497/Modalysis.git
cd Modalysis
pip install -r requirements.txt

Run the Flask server

python wsgi.py

Google App Engine (often referred to as GAE or simply App Engine) is a cloud computing platform as a service for developing and hosting web applications in Google-managed data centers. Applications are sandboxed and run across multiple servers. It offers automatic scaling for web applications—as the number of requests increases for an application and automatically allocates more resources for the web application to handle the additional demand.

Steps:

  • Created a VM instance on Google cloud Platfom
  • Created a Project named: Modalysis
  • Enable Cloud Engine API
  • App Engine:
    • Create a new application
    • Select location : europe-west2
  • Source repository:
    • Add repo: connect external repo
    • Authenticate from github repo
    • Changed the gcloud config for timeout : gcloud config set app/cloud_build_timeout 5000
    • Deployed App: gcloud app deploy

image

Heroku is a container-based cloud Platform as a Service (PaaS) for several languages. Applications that are run on Heroku typically have a unique domain used to route HTTP requests to the correct application container or dyno. Each of the dynos are spread across a "dyno grid" which consists of several servers. Heroku's Git server handles application repository pushes from permitted users.

All Heroku services are hosted on Amazon's EC2 cloud-computing platform.

Deployment Architecture:

dia drawio

Home Page:

Project Requirement CheckList:

✅ REST-based service interface for CRUD operations

GET, POST, PUT, DELETE

✅ Interaction with external REST services

Using NLP Cloud Playground API to fetch the model Used Discord Api to send the summarized results directly to discord

✅ Use of an external Cloud database for persisting information

MongoDb Cluster

✅ Serving the application over https

✅ Implementing hash-based authentication

✅ Implementing user accounts and access management

✅ Securing the database with role-based policies

REST URIs:-

  • Register User: <POST/user/signup> Description: Method to create a new account, creates a user in our MongoDB database.
  • User Authentication: <POST/user/login> Description: Hash based Authentication by verifying the password.
  • Update Password: <PUT/user/updatepassword/> Description: Updates password of a registered user.
  • Invoke BART Summarizer: (External API): <POST/dashboard/summarizer/> Description: Calls the Bart External API and generates the summary of a given text passage/article using API key.
  • External Api Discord: <POST/dashboard/discord> Description: Sends the summary result to our discord server through the Discord Webhook.
  • GET Users: <GET/user/getusers> Description: Admin can fetch a list of all the registered users.
  • UPDATE User Details: <PUT/user/updateuser> Description: Admin can update the details of any specific user.
  • DELETE: <DELETE/user/deleteuser>Description: Admin can delete a user from the database.
  • Create a User: <POST/user/createuser>Admin can create a new user and assign a specific role. (Admin/User)

Links:

About

Cloud based Flask application using state-of-the-art Machine Learning models to perform classification tasks and text summarisation with a user management system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •