Skip to content

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

License

Notifications You must be signed in to change notification settings

Nneji123/WordsAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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