Git Product home page Git Product logo

nneji123 / wordsai Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 1.0 1.97 MB

A collection of NLP Applications built using FastAPI, HTML, CSS, and Streamlit.

Home Page: https://wordsai-app.herokuapp.com/

License: Apache License 2.0

Python 36.25% Dockerfile 0.64% Shell 2.53% HTML 60.58%
docker docker-compose fastapi git githubactions gitpod heroku-deployment nlp-machine-learning optical-character-recognition resumeparser

wordsai's Introduction

Language HTML CSS Framework Framework hosted Docker Gitpod reposize Deploy CodeQL tests

About

WordsAI is a collection of NLP/text and audio based applications served as APIs using the FastAPI framework.

HTML Web App: http://wordsai-app.herokuapp.com

API Documentation: http://wordsai-api.herokuapp.com

Streamlit App: https://nneji123-wordsai-streamlithome-x32anq.streamlitapp.com/

Table of Contents

Features

  • Speech Recognition
  • Auto Correct
  • Machine Translation across multiple languages
  • Resume Parser
  • Text Summarizer
  • Webpage Summarizer
  • Sentiment Analyzer
  • Optical Character Recognition or OCR(extract text from images)
  • Named Entity Recognizer
  • Chatbot
  • Wordcloud Generator

Repository File Structure

├───.github
│   └───workflows #Github Actions
├───api           #FastAPI Application
│   ├───images
│   ├───temp
│   └───train_bot
├───src           #HTML Web Application
│   ├───images
│   ├───temp
│   ├───templates
│   │   └───assets
│   └───__pycache__
├───streamlit     #Streamlit Application
│   ├───functions
│   ├───images
│   ├───pages
│   └───temp
└───tests         #Tests

Demo

API Demo

HTML App Demo

Streamlit App Demo

How to run the Application

Running on Local Machine

To run the application on your local system do the following:

  1. Clone the repository:
git clone https://github.com/Nneji123/WordsAI.git
  1. Change the directory:
cd WordsAI
  1. Install the requirements:
pip install -r requirements.txt
  1. Run the application
uvicorn app:app --reload --port 8000

You should be able to view the application by going to http://127.0.0.1:8000/

Running on Local Machine with Docker Compose

You can also run the application in a docker container using docker compose(if you have it installed)

  1. Clone the repository:
git clone https://github.com/Nneji123/WordsAI.git
  1. Change the directory:
cd WordsAI
  1. Run the docker compose command
docker compose up -d --build 

You should be able to view the application by going to http://localhost:8000/

Running in a Gitpod Cloud Environment

Click the button below to start a new development environment:

Open in Gitpod

Tests

Test HTML Web App Functions

To test the HTML Web app do the following:

  1. Clone the repository:
git clone https://github.com/Nneji123/WordsAI.git
  1. Change the working directory and install the requirements and pytest:
cd src && pip install -r requirements.txt && pip install pytest
  1. Move to the tests folder and run the tests
cd .. && cd tests && pytest
Test API

To test the API functions do the following:

  1. Clone the repository:
git clone https://github.com/Nneji123/WordsAI.git
  1. Change the working directory and install the requirements and pytest:
cd api && pip install -r requirements.txt && pip install pytest
  1. Move to the tests folder and run the tests
cd .. && cd tests && pytest

Deployment

Deploying the Application to Heroku

Assuming you have git and heroku cli installed just carry out the following steps:

  1. Clone the repository:
git clone https://github.com/Nneji123/WordsAI.git
  1. Change the directory:
cd WordsAI
  1. Login to Heroku
heroku login
heroku container:login
  1. Create your application
heroku create your-app-name

Replace your-app-name with the name of your choosing.

  1. Build the image and push to Container Registry:
heroku container:push web
  1. Then release the image to your app:
heroku container:release web

Click the button below to deploy the application.

Deploy

How to deploy the application on AWS EC2 using a Bash Script

1. Fork this repository

2. Login to AWS, create a new AWS EC2 instance and make sure to allow outside traffic as shown in the screenshots below:

3. When the instance has been launched, copy the Public IP address of your instance and paste it in the 'fastapi_setup' file of your cloned repository as shown below

4. Connect to your instance and clone your forked repository, an example in my case:

git clone https://github.com/Nneji123/WordsAI.git

5. cd into your repository which is probably named 'WordsAI'. You can do that by running:

cd WordsAI 

6. Then run the setup.sh file to get your application up and running:

chmod u+x aws.sh
./aws.sh

You can then view the application by going to your Public IP's location, an example in my case will be: http://3.95.202.74:80/docs

You can also watch this video for a more in depth explanation on how to deploy a FastAPI application on AWS EC2: How to deploy FastAPI on AWS

Todo

  • Add a frontend interface for the APIs with streamlit and html, css , javascript
  • Add more interesting features like; title generator and song finder, text2speech, pdf text extractor, spam detection etc
  • Add functional chatbot
  • Add wordsai discord bot
  • update tests

License

Apache

wordsai's People

Contributors

nneji123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

cicada-369

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.