https://github.com/rauhanahmed/wordweaver
Django-based text utility service, offering multi-language translation, sentiment analysis, and text summarization, all seamlessly deployed on AWS Lambda with Docker for robust and scalable performance.
https://github.com/rauhanahmed/wordweaver
aws awsecr awslambda deep-translator django docker groq langhchain mangum python serverless textblob webapplication
Last synced: 2 months ago
JSON representation
Django-based text utility service, offering multi-language translation, sentiment analysis, and text summarization, all seamlessly deployed on AWS Lambda with Docker for robust and scalable performance.
- Host: GitHub
- URL: https://github.com/rauhanahmed/wordweaver
- Owner: RauhanAhmed
- License: mit
- Created: 2024-07-31T09:50:29.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-31T10:39:11.000Z (almost 2 years ago)
- Last Synced: 2025-03-02T11:33:24.795Z (over 1 year ago)
- Topics: aws, awsecr, awslambda, deep-translator, django, docker, groq, langhchain, mangum, python, serverless, textblob, webapplication
- Language: JavaScript
- Homepage:
- Size: 429 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WordWeaver: Serverless Text Utility with Django on AWS
**WordWeaver** is a comprehensive text utility application built as a serverless function on AWS Lambda using Python and Django. It offers a suite of powerful text processing tools including *multilingual translation*, *sentiment analysis*, and *text summarization*. Leveraging the `deep-translator`, `TextBlob`, and `Langchain` libraries, the application provides accurate and efficient results. The project is deployed as a Docker container on AWS ECR and integrated with API Gateway for seamless interaction.
This repository serves as the foundation for the application, building upon the core functionalities of the original `Multi-language-Translator` project ([https://github.com/rajendraprasath307/Multi-language-Translator](https://github.com/rajendraprasath307/Multi-language-Translator)). It combines these core features with advanced text analysis capabilities and a user-friendly interface.
## Tech Stack
**Multi-Language Translator**
- *deep-translator:* Python library for translating text in multiple languages, replacing the deprecated googletrans library.
**Sentimental Analysis**
- *TextBlob*: Python library for sentiment analysis, providing polarity and subjectivity scores for input text.
**Text Summarization**
- *Langchain*: A framework to build LLM pipelines with language models and integrate them into the application.
- *Groq Inference Engine*: Used for powering the Llama-3.1-8B LLM variant, enabling the functionality to perform high quality text summarization.
- *Llama-3.1 (8B)*: A high-performance open-source Large Language Model for text summarization.
**Web Application Development**
- *Django*: Leveraged the Django framework for building the core web application and managing different components.
- *HTML, CSS, JavaScript*: For front-end development to enhance the user interface and provide easy navigation across applications.
**Application Deployment**
- *Docker*: Containerization tool used for packaging the application with all dependencies for deployment.
- *Mangum*: A Python library used for adapting the Django ASGI application for AWS Lambda.
- *AWS Elastic Container Registry (ECR)*: AWS's native container registry service for storing and managing Docker images.
- *AWS Lambda*: AWS serverless compute service for deploying and running the Dockerized Django application and configuring settings for timeout, memory allocation, and CORS to ensure optimal performance.
## Demo
- Web App Demo

- Multi Language Translator

- Sentiment Analyzer

- Text Summarizer

## Run Locally
Clone the project
```bash
git clone https://github.com/rauhanahmed/WordWeaver
```
Go to the project directory
```bash
cd WordWeaver
```
Install dependencies
```bash
pip install -r requirements.txt
```
Start the server (Any of the two approaches)
- ```bash
# Start the Django development server (will run on post 8000)
python manage.py runserver
```
- ```bash
# Start the Uvicorn server (will run on post 7000)
python main.py runserver
```
After performing the above steps, open any browser, and hit the localhost at the correct port.
## Authors
[Rauhan Ahmed Siddiqui](https://linkedin.com/in/rauhan-ahmed/)
## License
[MIT](https://choosealicense.com/licenses/mit/)