Inspiration
Project Summary (Clozyt Challenge) We built a real-time clothing recommender for the Clozyt startup challenge, where users swipe left/right (and super-like via add-to-cart) to teach the model their style. Each item is embedded with FashionCLIP, fusing 70% text (title) and 30% image into a single vector stored in Qdrant (HNSW, cosine). A per-user embedding updates from implicit feedback—dislike=1, like=2, super-like=3—centered to s=r−2∈{−1,0,+1}. We serve 5-item packets with an adaptive top_m policy (start 2, adjust ±1 after each batch) to balance exploitation and exploration while always respecting hard filters (gender, size, price, brand, in-stock). The result is a fast, sticky feed that learns in minutes without going stale.
Accomplishments that we're proud of
From zero to “whoa” in a weekend: Built a fully working swipe-to-shop PWA with a live /recs/next pipeline that feels instant and fun. FashionCLIP, fused right: Shipped a 70% text / 30% image embedding fusion that actually improved cold-start relevance without overfitting to visuals. Vector search that flies: Deployed Qdrant (HNSW + cosine) with tuned m and ef_search to keep p95 latency < 200 ms end-to-end—even with live user updates. Learning in five: Designed the 5-item adaptive packet policy (dynamic top_m) that leans into winners and cranks up exploration when we’re off—simple, effective, and demo-friendly.
What we learned
PWA stack: Next.js + React (TypeScript), Tailwind, Framer Motion (60 fps swipes), Zustand (lightweight state). API & serving: Node/TS (Fastify) for /recs/next + /feedback; JSON contracts kept the UI/ML boundary clean. Vector DB: Qdrant (HNSW + cosine). Learned to tune m and ef_search for a sweet spot between recall and latency. Data store & caching: Simple in-memory/Redis for per-user state (u_vec, recent negatives) → sub-200 ms p95. DevX: Clear env knobs (W_TEXT, W_IMAGE, ALPHA_+/-, TAU_HOURS, TOP_M_INIT) made A/Bs fast.
What's next for Clozyt Algorithm - Drip Coders
If we had more time: Add review-sentiment priors into scores, Pre-warm category/gender shards in Qdrant, Micro-coach questions after N swipes to accelerate convergence.
Log in or sign up for Devpost to join the conversation.