OverThinker / README.md
broadfield-dev's picture
Update README.md
548ee71 verified
|
Raw
History Blame Contribute Delete
8.53 kB

A newer version of the Gradio SDK is available: 6.19.0

Upgrade
metadata
title: OverThinker
emoji: 🌍
colorFrom: pink
colorTo: purple
sdk: gradio
sdk_version: 6.18.0
python_version: '3.13'
app_file: app.py
pinned: true
short_description: Decision tree for overthinkers
tags:
  - track:backyard
  - track:wood
  - sponsor:nvidia
  - achievement:offbrand
  - achievement:sharing
  - achievement:fieldnotes
thumbnail: >-
  https://cdn-uploads.huggingface.co/production/uploads/677e884129c1f2af708eb07b/et2f8YT0mUp1DipL8LL-U.jpeg

Overthinker: AI-Powered Decision Tree Explorer

Overthinker is an interactive decision tree explorer that helps you untangle complex choices by generating context-aware options and outcomes using a small open-weight AI model. Built for the Build Small Hackathon β€” a Hugging Face Γ— Gradio jam for tiny AI models under 32B parameters.

Hugging Face Space Demo Video Social Post

Screenshot


🧠 The Idea

Ever spent hours overthinking a decision? Overthinker turns that into a feature. You start with a root question β€” "Should I quit my job?" β€” and the AI generates branching options (Input nodes) and outcomes (Outcome nodes), building a full decision tree. Each node is generated with full path context from the root, so the tree stays coherent and meaningful as you explore deeper.

Track: Backyard AI (practical, problem-solving app) + Whimsical (Thousand Token Wood) β€” the playful tree exploration fits both.


βœ… Hackathon Requirements Met

Requirement Status Details
Under 32B parameters (REQ-01) βœ… Uses nvidia/nemotron-3-nano-30b-a3b (30B) via OpenRouter API
Gradio app deployed (REQ-02) βœ… Gradio.Server-based app, deployable as Hugging Face Space
Demo video (REQ-03) βœ… Linked above
Social post (REQ-04) βœ… Linked above
GPU limit (REQ-05) βœ… Zero GPU usage β€” inference runs remotely via OpenRouter API
Tagged README (REQ-06) βœ… YAML front matter includes track + badge tags

πŸ† Targeted Prizes & Badges

Prize / Badge Value Why Overthinker Qualifies
Nemotron Hardware Prize (NVIDIA) Two RTX 5080s Built with nvidia/nemotron-3-nano-30b-a3b β€” a Nemotron model. Full path context injection ensures coherent generation.
Off Brand ($1,500) Custom UI bonus Custom D3.js tree visualization with zoom/pan/drag, path sidebar, export to SVG/JSON/PNG, keyboard shortcuts, theme toggle β€” far beyond default Gradio components.
Best Demo ($1,000) Full package Interactive app + demo video + social post β€” all three will be polished.
Bonus Quest Champion ($2,000) Most criteria met Targets Nemotron + Off Brand + Best Demo + Community Choice + Tiny Titan (model ≀ 4B? No, but 30B is still small).
Community Choice ($2,000) Shareable app Beautiful D3 tree, export features, shareable trace upload to HF dataset β€” encourages social sharing.

✨ Key Features

  • Interactive Decision Tree: Start with a root question, explore branching options and outcomes
  • Full Path Context: Every generation prompt includes the entire lineage from root to current node β€” no disconnected logic
  • Session-Based Storage: SQLite per-session databases β€” zero memory overlap between users, safe for public Spaces
  • Rich Visualization: D3.js tree with zoom, pan, drag, collapsible nodes, and breadcrumb navigation
  • Export Options: Save your tree as SVG, JSON, Markdown, or PNG
  • Trace Upload: Upload your decision tree to a shared Hugging Face dataset for community exploration

πŸ› οΈ Tech Stack

Component Technology
Frontend Gradio (custom D3.js + HTML/CSS/JS)
Backend Python 3.10+, Gradio.Server (FastAPI-based)
AI Model nvidia/nemotron-3-nano-30b-a3b via OpenRouter API
Database SQLite (per-session, disk-persistent)
Dataset Hugging Face datasets (trace upload)
Deployment Hugging Face Spaces (no GPU needed)

πŸš€ Getting Started

Local Development

  1. Clone the repository
git clone https://github.com/broadfield-dev/overthinker.git
cd Overthinker_Hackathon
  1. Install dependencies
pip install gradio
  1. Set environment variables

Create a .env file:

OPENROUTER_API_KEY=your_openrouter_api_key
HF_TOKEN=your_huggingface_write_token  # for trace upload
HF_DATASET_REPO=your-username/overthinker-traces  # optional, for trace sharing
  1. Run the app
python app.py

Then open http://localhost:7860 in your browser.

Deploy on Hugging Face Spaces

  1. Fork or upload this repository as a new Space on Hugging Face
  2. Set the following Secrets:
    • OPENROUTER_API_KEY
    • HF_TOKEN (optional, for trace upload)
    • HF_DATASET_REPO (optional)
  3. Ensure requirements.txt contains: gradio, fastapi, uvicorn, httpx, jinja2, datasets
  4. The Space will start automatically β€” no GPU needed

Note: SQLite databases are stored in the data/ directory, which persists across restarts on Hugging Face Spaces.


πŸ“š How It Works

  1. Start: Enter a decision question (e.g., "Should I start a business?")
  2. Generate Options: Click "Explore Options" β€” the AI generates 3 possible paths
  3. Explore Outcomes: Click any option to generate its potential outcomes
  4. Dive Deeper: Continue exploring deeper into the tree β€” each level maintains full context from the root
  5. Export: Save your tree as SVG, JSON, Markdown, or PNG
  6. Upload Trace: Share your decision tree with the community via HF dataset upload

Path Context Injection

Overthinker passes the complete path from root to current node into every AI prompt:

[ROOT] Should I quit my job? β†’ [INPUT] Start freelancing β†’ [OUTCOME] Income becomes unstable

This ensures coherent, context-aware generation at every depth.


πŸ§ͺ Testing & Quality

  • All endpoints tested with valid and invalid session IDs
  • Edge cases: empty trees, multiple concurrent users, API failures
  • Memory testing: validated <50MB RAM under heavy load (compared to 5GB in v26)
  • Frontend tested in Chrome, Firefox, and Safari

πŸ“¦ File Structure

Overthinker_Hackathon/
β”œβ”€β”€ app.py                 # Backend with SQLite, POST endpoints, path context
β”œβ”€β”€ templates/
β”‚   └── index.html         # Full D3 tree visualization (~1800 lines)
β”œβ”€β”€ data/                  # Created automatically for per-session SQLite DBs
β”œβ”€β”€ README.md              # This file
└── requirements.txt       # (to be added β€” include gradio, fastapi, uvicorn, httpx, jinja2, datasets)

πŸ”— Links


πŸ™Œ Acknowledgments

Built with ❀️ for the Build Small Hackathon by broadfield-dev.

Special thanks to:

  • Hugging Face & Gradio for the platform and tools
  • NVIDIA for the Nemotron model family
  • OpenRouter for providing API access to open-source models
  • D3.js for the powerful visualization library

Last updated: June 14, 2026