| ---
|
| title: The Podium
|
| emoji: π―
|
| colorFrom: indigo
|
| colorTo: purple
|
| sdk: gradio
|
| sdk_version: "5.20.0"
|
| python_version: "3.11"
|
| app_file: app.py
|
| pinned: false
|
| tags:
|
| - thousand-token-wood
|
| - game
|
| - debate
|
| - llm
|
| - gradio
|
| - interactive
|
| - track:wood
|
| - achievement:offbrand
|
| license: mit
|
| ---
|
|
|
| # The Podium
|
|
|
| **A strategic LLM debate game** β Hugging Face "Build Small" hackathon entry.
|
|
|
| You are the **strategist**, not the debater. Manage a finite word pool, pick your champion's archetype, play ability cards, and coach an AI debater through 3 rounds judged by wildly opinionated AI characters β each with their own agenda, biases, and scoring personality. Every word you choose costs something. Every judge changes the calculus. Outsmart the opponent AI, read the room, and claim The Podium.
|
|
|
| Built with a custom Gradio HTML/JS hybrid UI (Off Brand badge candidate).
|
|
|
| ---
|
|
|
| ## Demo
|
|
|
| π¬ Demo video: [The Podium Demo](https://huggingface.co/spaces/build-small-hackathon/The-Podium/blob/main/The%20Podium%20Demo.mp4)
|
|
|
| π£ Social post: [LinkedIn post](https://www.linkedin.com/posts/manuel-utreras-456bb1354_huggingface-buildsmall-ai-share-7472245558993166336-VcuY/?utm_source=share&utm_medium=member_desktop&rcm=ACoAAFh0SEIBVRysd9VOWWGvj-VSFYGEyFPeV4o)
|
|
|
| ---
|
|
|
| ## How to Play
|
|
|
| 1. **Setup** β A word pool is generated with a hidden flavor seed. Choose your debater's archetype (Firebrand, Academic, Contrarianβ¦). Receive 3 ability cards.
|
| 2. **Each Round** β A topic is revealed along with a biased judge. Pick words from your pool and set their emphasis order. Optionally play an ability card.
|
| 3. **The Podium** β Both AI debaters argue their assigned sides using your chosen words. The judge scores on coherence, persuasion, word integration, and judge appeal β in their own character's voice.
|
| 4. **Win 2 of 3 rounds** (or most total points) to claim The Podium.
|
|
|
| ---
|
|
|
| ## Tech Stack
|
|
|
| | Component | Technology |
|
| |---|---|
|
| | UI | Gradio 5.x with custom HTML/JS hybrid |
|
| | Language | Python 3.11 |
|
| | LLM (submission) | google/gemma-4-31B-it via HF Inference API |
|
| | LLM (dev) | Claude Sonnet (Anthropic) |
|
| | Deployment | Hugging Face Spaces |
|
|
|
| ---
|
|
|
| ## Running Locally
|
|
|
| ```bash
|
| pip install -r requirements.txt
|
| cp .env.example .env
|
| # Edit .env β set LLM_PROVIDER and the matching API key/token
|
| python app.py
|
| ```
|
|
|
| **Environment variables:**
|
|
|
| | Variable | Required for |
|
| |---|---|
|
| | `LLM_PROVIDER` | `hf` (HF Spaces) or `anthropic` (dev) |
|
| | `HF_TOKEN` | HF Inference API (when `LLM_PROVIDER=hf`) |
|
| | `ANTHROPIC_API_KEY` | Dev/local only (when `LLM_PROVIDER=anthropic`) |
|
|
|
| **Headless / terminal mode** (for prompt testing):
|
|
|
| ```bash
|
| python engine.py
|
| ```
|
|
|
| ---
|
|
|
| ## Provider Switching
|
|
|
| The game runs against any LLM via a single env var β no code changes needed:
|
|
|
| | `LLM_PROVIDER` | Model | Setup |
|
| |---|---|---|
|
| | `hf` | google/gemma-4-31B-it via HF Inference API | Set `HF_TOKEN` |
|
| | `anthropic` | Claude Sonnet (dev only) | Set `ANTHROPIC_API_KEY` |
|
|
|
| ---
|
|
|
| ## File Structure
|
|
|
| ```
|
| app.py # Gradio UI β no game logic
|
| engine.py # Pure-Python game engine β testable headless
|
| llm.py # Provider abstraction (HF Inference / Anthropic)
|
| prompts.py # All LLM prompt templates
|
| content.py # Static content: judges, archetypes, abilities, seed words
|
| config.py # Tunables and feature toggles
|
| ```
|
|
|
| ---
|
|
|
| ## Archetypes
|
|
|
| | Archetype | Style | Judge Effect |
|
| |---|---|---|
|
| | π₯ The Firebrand | Emotional, punchy | +persuasion, -coherence |
|
| | π The Academic | Precise, structured | +coherence, -appeal w/ personality judges |
|
| | π§’ The Everyman | Plainspoken | No modifiers (safe pick) |
|
| | βοΈ The Contrarian | Flips expectations | Bonus when arguing the harder side |
|
| | β¨ The Charmer | Witty, disarming | +appeal with personality judges only |
|
|
|
| ## Ability Cards
|
|
|
| Echo π Β· Wildcard π Β· Hoard π¦ Β· Scramble π Β· Plant π± Β· Silence π€« Β· Appeal βοΈ Β· Bias π― Β· Inspiration π‘
|
|
|
| ---
|
|
|
| Built for the Hugging Face "Build Small" hackathon. Open-weight model β€ 32B parameters.
|
|
|