SkillAgentSearch skills...

WordsAI

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

Install / Use

/learn @Nneji123/WordsAI

README

<p align="center"> <img width="300" height="300" src="https://user-images.githubusercontent.com/101701760/182023528-7da7205e-1fc6-49c9-832d-b3f40a68eae8.png"> </p>

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

<details> <summary><b>Running on Local Machine</b></summary>

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/

</details> <details> <summary><b>Running on Local Machine with Docker Compose</b></summary>

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/

</details> <details> <summary><b>Running in a Gitpod Cloud Environment</b></summary>

Click the button below to start a new development environment:

Open in Gitpod

</details>

Tests

<details> <summary><b>Test HTML Web App Functions</b></summary>

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
</details> <details> <summary><b>Test API</b></summary>

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
</details>

Deployment

<details> <summary><b>Deploying the Application to Heroku</b></summary>

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

</details> <details> <summary><b>How to deploy the application on AWS EC2 using a Bash Script</b></summary>

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:

<img src="https://user-images.githubusercontent.com/101701760/178163392-3c9fc8ec-e58a-420d-a6bb-2885215d8105.png" width="1200" height="400"> <img src="https://user-images.githubusercontent.com/101701760/178163373-e4bb2c92-0f47-4a22-9556-dfc470fd7e8a.png" width="1200" height="400">

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

<img src="https://user-images.githubusercontent.com/101701760/178163457-2e156379-b542-4d24-aebf-e202dd44ae2c.png" width="1200" height="400"> <img src="https://user-images.githubusercontent.com/101701760/178163536-918818ee-563d-4b0d-a5ec-5c265a75b2b4.png" width="1200" height="400">

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

</details>

Todo

  • [x] 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
  • [x] Add functional chatbot
  • [x] Add wordsai discord bot
  • [x] update tests

License

Apache

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated2y ago
Forks1

Languages

HTML

Security Score

75/100

Audited on May 16, 2023

No findings