跳到正文
DEV Community· Om Gedam·· 3 小時前AI 評分37

ListLens 以開放權重 AI 將產品相片轉成 Etsy 和 eBay 商品刊登文案

ListLens Turn product photos into polished Etsy & eBay listings with open-weight AI

AI 導讀

ListLens 讓 Etsy 和 eBay 賣家上載 1–8 張產品相片,以開放權重 AI 約 15 秒生成商品刊登文案。流程先由 llama-3.2-90b-vision-preview 擷取相片屬性,再交由 llama-3.3-70b-versatile 生成標題、描述、標籤和分類;上載相片會縮至不超過 1024px,令視覺 token 用量減少約 70%。

正文

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle

What I Built

ListLens is an AI listing writer for Etsy and eBay sellers. Upload 1–8 product photos, and it writes a full listing — title, description, tags, and category — optimized for the platform you're selling on.

Who pays for it: Casual sellers and side-hustlers who list 5–50 items a month. Writing good listings is tedious: keyword research, tag limits, platform-specific tone, honest condition descriptions. Most sellers either skip it (and lose visibility) or spend 15–20 minutes per listing. ListLens cuts that to ~15 seconds.

The problem it solves: Etsy lives or dies on SEO. eBay lives or dies on title keywords. But writing either well is a skill most makers and resellers don't have time to build. ListLens handles the boring part so they can focus on sourcing and photographing.

Demo

Code


📸 What is ListLens?

ListLens is an AI listing writer for Etsy and eBay sellers. Upload 1–8 product photos, and it generates a complete, platform-optimized listing — title, description, tags, and category — in about 15 seconds.

Writing good listings is tedious. Etsy lives or dies on SEO tags. eBay lives or dies on title keywords. Most makers and resellers either skip it (and lose visibility) or spend 15–20 minutes per item. ListLens handles the boring part so you can focus on sourcing and photographing.


✨ Features

  • 📷 Multi-photo upload — drag-and-drop up to 8 images, auto-resized to 1024px to cut token cost
  • 🎯 Platform-aware — tuned for Etsy, eBay, Shopify, and Depop
  • 🎨 Tone selection — Friendly, Minimal, Vintage, or Luxury
  • 🧠 Two-stage AI pipeline —…

How I Built It

Stack: Next.js 15 (App Router), Tailwind CSS, deployed on Vercel.

The AI — fully open-weight:

I deliberately chose open-weight models over closed APIs because listing copy is a commodity task. It doesn't need frontier reasoning — it needs to be fast, cheap, and consistent. Running on open weights means I can:

Host the whole thing on Groq's free tier while I validate product-market fit

Swap models without rewriting the app (I prototyped on GPT-4o, then dropped in Llama 3.2 Vision in ~30 minutes of refactoring)

Let users self-host later if they want — the app is a thin wrapper around a prompt

The pipeline:

Vision pass — llama-3.2-90b-vision-preview receives up to 8 images and returns JSON attributes. The prompt is strictly constrained: "Only describe what is CLEARLY VISIBLE. Never invent brands, materials, or origins." This matters — vision models hallucinate details that get sellers in trouble with platform authenticity rules.

Copy pass — llama-3.3-70b-versatile takes those attributes plus platform + tone and returns a structured listing (title, description, tags array, category, SEO description). Response format is forced to JSON so the frontend can render individual fields cleanly.

Client-side image resize — every upload is downscaled to max 1024px via canvas before hitting the API. This cuts vision tokens by ~70% and keeps requests under 2 seconds.

Why two model calls instead of one: Separating "read the photo" from "write the copy" lets me tune each independently. When I noticed the vision model inventing leather textures, I tightened only that prompt — the writer prompt stayed stable. It's also cheaper: the vision call is the expensive one, and it never regenerates.

Frontend: Next.js with a two-column layout (controls left, output right), drag-and-drop upload, pill-style platform/tone selectors, loading skeletons, and per-field copy buttons. Full dark mode. Everything Tailwind, no component library.

Why Does Open Innovation Matter?

Two reasons, one practical and one philosophical.

Practical: Listing writers are a long-tail product. The market isn't 100,000 sellers — it's millions of tiny sellers who'd pay $5–10/month. At those margins, per-token API costs kill you. Open-weight models on Groq or Together let me offer a free tier and still have room to charge. A closed-API-only version of this product can't exist profitably at the bottom of the market.

Philosophical: The prompts are the product. If listing copy is generated by a closed model, and the prompts are the only differentiator, then every competitor is one good reverse-engineering away from cloning me. With open weights, I can fine-tune on my own seller data, run on my own hardware, and eventually let sellers self-host with their own listings baked in. That's a moat a closed API can't give me.

The challenge framing asked why open innovation matters "for what you built" — the honest answer is that open weights are what make a tiny-margin side-hustle tool economically viable at all.

My Agent Session

Groq

來源:DEV Community · dev.to