https://github.com/nneji123/wordsai
A collection of NLP Applications built using FastAPI, HTML, CSS, and Streamlit.
https://github.com/nneji123/wordsai
chatbot docker docker-compose fastapi git githubactions gitpod heroku-deployment nlp-machine-learning optical-character-recognition resumeparser sentiment-analysis speech-recognition speech-to-text testing text textsumarizer translation
Last synced: about 1 month ago
JSON representation
A collection of NLP Applications built using FastAPI, HTML, CSS, and Streamlit.
- Host: GitHub
- URL: https://github.com/nneji123/wordsai
- Owner: Nneji123
- License: apache-2.0
- Created: 2022-07-31T09:05:14.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-23T04:34:50.000Z (about 2 years ago)
- Last Synced: 2025-05-04T21:57:11.223Z (about 2 months ago)
- Topics: chatbot, docker, docker-compose, fastapi, git, githubactions, gitpod, heroku-deployment, nlp-machine-learning, optical-character-recognition, resumeparser, sentiment-analysis, speech-recognition, speech-to-text, testing, text, textsumarizer, translation
- Language: HTML
- Homepage: https://wordsai-app.herokuapp.com/
- Size: 1.93 MB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
[](https://www.python.org)
[](http://wordsai-app.herokuapp.com)
[](http://wordsai-app.herokuapp.com)
[](https://wordsai-api.herokuapp.com/docs)
[](https://share.streamlit.io/nneji123/lung-cancer-prediction/main)


[](https://gitpod.io/#https://github.com/Nneji123/WordsAI)

[](https://github.com/Nneji123/WordsAI/actions/workflows/deploy.yml)
[](https://github.com/Nneji123/WordsAI/actions/workflows/codeql.yml)
[](https://github.com/Nneji123/WordsAI/actions/workflows/python-app.yml)## 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
* [About](#about)
* [Table of Contents](#table-of-contents)
+ [Features](#features)
* [Repository File Structure](#repository-file-structure)
* [Demo](#demo)
+ [API Demo](#api-demo)
+ [HTML App Demo](#html-app-demo)
+ [Streamlit App Demo](#streamlit-app-demo)
* [How to run the Application](#how-to-run-the-application)
* [Tests](#tests)
* [Deployment](#deployment)
- [Todo](#todo)
- [License](#license)### 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
```bash
├───.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:
```bash
git clone https://github.com/Nneji123/WordsAI.git
```2. Change the directory:
```
cd WordsAI
```3. Install the requirements:
```
pip install -r requirements.txt
```4. 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:
```bash
git clone https://github.com/Nneji123/WordsAI.git
```2. Change the directory:
```
cd WordsAI
```3. Run the docker compose command
```docker
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:**
[](https://gitpod.io/#https://github.com/Nneji123/WordsAI)
## Tests
Test HTML Web App FunctionsTo test the HTML Web app do the following:
1. Clone the repository:
```
git clone https://github.com/Nneji123/WordsAI.git
```
2. Change the working directory and install the requirements and pytest:
```
cd src && pip install -r requirements.txt && pip install pytest
```
3. Move to the tests folder and run the tests
```
cd .. && cd tests && pytest
```
Test APITo test the API functions do the following:
1. Clone the repository:
```
git clone https://github.com/Nneji123/WordsAI.git
```
2. Change the working directory and install the requirements and pytest:
```
cd api && pip install -r requirements.txt && pip install pytest
```
3. 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:
```bash
git clone https://github.com/Nneji123/WordsAI.git
```2. Change the directory:
```
cd WordsAI
```3. Login to Heroku
```
heroku login
heroku container:login
```4. Create your application
```
heroku create your-app-name
```
Replace **your-app-name** with the name of your choosing.5. Build the image and push to Container Registry:
```
heroku container:push web
```6. Then release the image to your app:
```
heroku container:release web
```Click the button below to deploy the application.
[](https://heroku.com/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:**
```bash
git clone https://github.com/Nneji123/WordsAI.git
```
**5. cd into your repository which is probably named 'WordsAI'. You can do that by running:**
```bash
cd WordsAI
```
**6. Then run the setup.sh file to get your application up and running:**
```bash
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:**
[](https://www.youtube.com/watch?v=SgSnz7kW-Ko)# 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](https://github.com/Nneji123/WordsAI/LICENSE.md)