cartbrawl / README.md
Zhenzewu's picture
CartBrawl: cart items brawl for your wallet
08dd3de verified
|
Raw
History Blame Contribute Delete
2.48 kB
---
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
```bash
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).