Skip to content

Latest commit

Β 

History

111 Commits

Folders and files

Repository files navigation

Purrrfessorrr Slothhh logo: a muscular pixel-art sloth

Purrrfessorrr Slothhh

Upload a dataset. A lazy sloth delegates. Five cats do the actual work.

Hacktoberfest 2026 Python FastAPI Local-first Gemma 3

image

Why this exists

Every exploratory analysis starts the same way: check for nulls, hunt duplicates, plot a few histograms, copy-paste the same boilerplate. It's necessary, and it's rarely the interesting part.

Purrrfessorrr Slothhh turns that routine into a tiny office. Drop in a CSV, TSV, or XLSX, pick what matters, and Professor Slothhh hands the job to five specialist cats. Open their desks to see real statistics, charts, plain-English explanations, and code you can reuse.

The sloth is lazy. The analysis isn't.

What you get

  • πŸ”Ž Data quality checks: missing values, duplicates, type problems, IQR outliers.
  • πŸ“Š Charts and summaries generated from your actual data.
  • 🧹 Cleaning suggestions for missing values and preprocessing.
  • πŸ’» Python and R snippets attached to each analysis card.
  • πŸ’¬ Chat about any column, chart, or outlier.
  • πŸ“¦ Export everything as a ZIP or a Jupyter notebook.

You control the scope: choose columns, set a prediction target, and exclude rows before anything runs.

The numbers are never made up. All statistics come from deterministic Python routines. The optional Gemma model only explains results; it never computes them, and it sees a summary of findings, not your raw rows.

🐈 Meet the team

Character Job
Professor Slothhh Greets you, delegates, keeps the office running
Detective Cat Data quality: duplicates, outliers, suspicious types
Artist Cat Charts that make patterns obvious
Scribe Cat Plain-language summaries of what was found
Coder Cat Reusable Python and R
Janitor Cat Cleaning and missing-value strategies

Quick start

You need Python 3.10+, a desktop browser (best at 1100px wide or more), and internet access for the first dependency install.

Windows

git clone https://github.com/ashtonckj/Purrrfessorrr-Slothhh.git
cd Purrrfessorrr-Slothhh
.\run.bat

macOS / Linux

git clone https://github.com/ashtonckj/Purrrfessorrr-Slothhh.git
cd Purrrfessorrr-Slothhh
chmod +x run.sh
./run.sh

Open http://127.0.0.1:8765 if your browser doesn't launch on its own.

Manual installation
python -m venv .venv

Windows:

.venv\Scripts\python -m pip install -r requirements.txt
.venv\Scripts\python app.py

macOS / Linux:

.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python app.py

Optional: richer chat with Gemma 3

Without a model, the app still runs the full analysis and answers common questions with built-in rules. To unlock open-ended explanations:

  1. Install Ollama.
  2. Run ollama pull gemma3:4b.
  3. Keep Ollama running and start the app as usual.
  4. Check engine status in the app's settings.

Defaults live in config.env (ENGINE=gemma, OLLAMA_MODEL=gemma3:4b). Set ENGINE=local for rules-only chat, or use gemma3:1b on low-memory machines (faster, less capable).

Model weights are not bundled. Ollama downloads them separately under Google's Gemma terms.

Using it

  1. Upload a .csv, .tsv, or .xlsx by dragging it into the chat. Sample data is available in settings.

  2. Customize columns, target, and row exclusions after previewing.

  3. Watch the cats work through their tasks.

  4. Explore results in the drawer: charts, previews, quality findings, code.

  5. Ask questions, such as:

    • Which columns have missing values?
    • Tell me about the outliers.
    • What does this histogram show?
    • Which libraries does the generated code use?

    To change a chart, use the dropdowns in its header in the drawer: column and bins for the distribution, column for the box plot, X and Y for the scatter plot. Asked in the chat, the Artist points you there.

  6. Export as a ZIP or notebook.

Open-ended questions work best with Gemma enabled; without it, the app says so and falls back to its rules.

How it works

Browser (pixel-art UI, vanilla JS)
   β”‚  HTTP + Server-Sent Events
   β–Ό
FastAPI server (backend/api.py)
   β”œβ”€β”€ uploads, previews, jobs, exports
   β”œβ”€β”€ deterministic EDA (backend/engines/local.py)
   β”‚     statistics, charts, cleaning insights, code
   └── chat routing (backend/engines/gemma.py)
         β”œβ”€β”€ rule-based answers and validated operations
         └── optional Ollama β†’ Gemma 3 on localhost

Files are analyzed on your machine. More detail in EDA.md, API.md, and ASSETS.md.

Contributing

Bug fixes, docs, accessibility improvements, new charts, and pixel art are all welcome. Start with CONTRIBUTING.md.

Built by

Made for Hacktoberfest 2026, Open-Source AI Challenge, Week 3: "Slow and Steady" by @ashtonckj, @fionakhl, and @JocelynKoh3.

πŸ“œ License and acknowledgements

See LICENSE. Third-party code, fonts, art, and model weights may carry their own terms. Ollama is a separate project.

🎨 Credits & Acknowledgements

This project wouldn't feel quite the same without its charming collection of pixel art illustrations! ✨ Special thanks to the talented artists and creative communities whose artwork helped shape the application's visual identity. Visual assets were sourced from Freepik, Dreamstime, Vecteezy, Pixel Art Maker, Pinterest, and other online resources.

πŸ–ΌοΈ View Full Asset Credits & Attribution

All third-party artwork belongs to its respective copyright holders and is subject to its own licensing terms.

Made with β˜•, creativity, and a little pixel magic. πŸ’›


Less boilerplate. More curiosity. A few more cat naps. πŸ¦₯πŸ’€

⭐ If this project made your data science day a little easier, consider starring the repository!

Releases

Packages

Used by

Contributors

Languages