The product our team introduced for the NLP Dumbathon 2025 at UC Santa Cruz organized by Cal Blanco
A text transformation and redaction application with NLP-powered keyphrase extraction that makes focused reading impossible.
- LLM-powered text transformation and paraphrasing with various modes (brainrot, argumentative, emoji, etc.)
- Intelligent keyphrase extraction and progressive redaction
- Interactive canvas-based UI
- Python 3.11+
- Virtual environment (included in
dumb/) - A Gemini API Key from your own account
Git clone repo. Go to gemini AI studio and go to Getting Started -> Dashboard -> API Keys -> Create API Key
then paste your API Key into a file in the main folder called super_top_secret.txt
the file will just simply be the key. No quotes, nothing else, just something like
Aasfoiwjoeirjoias
- Activate your virtual environment
cd /Users/chelseyelmore/Documents/NLPDumbathon-2025
source dumb/bin/activate- Install dependencies
pip install -r requirements.txt
python -m spacy download en_core_web_smYou need to run two API servers and then open the frontend.
source dumb/bin/activate
uvicorn main:app --reload --port 8000This starts the text transformation API at http://localhost:8000
source dumb/bin/activate
cd api
uvicorn server:app --reload --port 8001This starts the redaction/keyphrase API at http://localhost:8001
open index.htmlOr simply double-click index.html in Finder.
# Terminal 1
source dumb/bin/activate
uvicorn main:app --reload --port 8000
# Terminal 2 (new terminal)
source dumb/bin/activate
cd api
uvicorn server:app --reload --port 8001
# Then open canvas.html in your browserGET /- Health checkPOST /transform- Transform text- Body:
{"text": "your text", "mode": "brainrot"}
- Body:
GET /health- Health check
GET /- Health checkPOST /extract- Extract keyphrases- Body:
{"text": "your text", "p": 0.3} - Returns:
{"keyphrases": [[start, end], ...]}
- Body:
GET /docs- Interactive API documentation
.
├── main.py # Main FastAPI server (text transformation)
├── model.py # Text transformation logic
├── canvas.html # Frontend UI
├── requirements.txt # Python dependencies
├── api/ # Keyphrase extraction API
│ ├── server.py # FastAPI server
│ ├── keyphrase_extractor.py
│ ├── config.py
│ ├── utils.py
│ └── README.md # Detailed API documentation
├── assets/ # Images and assets
└── dumb/ # Virtual environment
Port already in use:
# Find process using the port
lsof -i :8000 # or :8001
# Kill the process
kill <PID>Model not found:
python -m spacy download en_core_web_smImport errors:
pip install -r requirements.txtBoth servers run with --reload flag, so they automatically restart when you make code changes.
For more details on the keyphrase extraction API, see api/README.md.
once you have everything setup, in one terminal run
uvicorn api.server:app --reload --port 8001
in the other terminal run
fastapi dev main.py
then open in finder the index.html (via a web browser)