cartbrawl / README.md
Zhenzewu's picture
CartBrawl: cart items brawl for your wallet
08dd3de verified
|
Raw
History Blame Contribute Delete
2.48 kB

A newer version of the Gradio SDK is available: 6.20.0

Upgrade
metadata
title: CartBrawl 购物车大乱斗
emoji: 🛒
colorFrom: red
colorTo: purple
sdk: gradio
sdk_version: 6.17.3
app_file: app.py
pinned: false
license: mit
short_description: Your cart items come alive and brawl for your wallet

🛒⚔️ CartBrawl 购物车大乱斗

Paste shop links. Your cart comes alive — and fights for your wallet.

Every item you add to the cart turns into a character with a personality. Each one knows every rival's price, specs, and weak spots, and they debate, trash-talk and counter-attack to convince you to buy them. You can interject ("I only care about battery life, budget is $300"), force a final plea, and then hit the buy button. The winner gloats; the losers cope. The decision is always yours.

How it works

links / "name price" lines
        │
        ▼
┌─────────────────────┐     ┌──────────────────────────────┐
│  Product extractor   │     │  Modal · vLLM · Qwen3-30B-A3B │
│  JSON-LD → OpenGraph │     │  (OpenAI-compatible endpoint) │
│  → URL-slug fallback │     └──────────────┬───────────────┘
└─────────┬───────────┘                    │
          ▼                                ▼
   cart dossiers ──────────► debate engine: personas → opening
   (every item sees          → attack → rebuttal → owner Q&A
    every rival's specs)     → closing pleas → verdict speeches
  • Model: Qwen/Qwen3-30B-A3B-Instruct-2507-FP8 (30.5B total ≤ 32B ✅, MoE 3B active), served by vLLM on a Modal L40S.
  • Scraping: schema.org JSON-LD first, OpenGraph meta second, URL-slug inference as a last resort — a bot-walled link still joins the brawl, it just has to bluff harder.
  • Anti-hallucination rule: items may only attack with real numbers from rival dossiers; no invented specs.
  • Bilingual brawls: 中文 / English.

Run locally

uv sync
export CARTBRAWL_LLM_URL=https://<your-modal-endpoint>.modal.run/v1
export CARTBRAWL_API_KEY=<your key>
uv run python app.py

Deploy your own backend: uv run modal deploy modal_server.py (needs a Modal secret cartbrawl-api-key with CARTBRAWL_API_KEY).

Built for

Build Small Hackathon 2026 — Track 2 (Thousand Token Wood).