← Назад к портфолио

PROJECT 04

Генератор карточек
WB / Ozon

Telegram-бот, который превращает описание товара в готовую карточку маркетплейса: продающий текст, характеристики, SEO-ключи и визуальный макет — как товар будет выглядеть на витрине.

Python GigaChat-2 LangChain python-telegram-bot Structured Output File API Prompt Engineering Marketplace
// демо — выбери товар
🤖 @wb_card_bot демо-режим · 6 готовых карточек
// примеры по категориям — правила площадок соблюдены
// а вот что увидит покупатель
Макет карточки на витрине собран из того же JSON, что и текст выше — в Telegram бот присылает его картинкой
3:4 · 900×1200
слот под ваше фото
★★★★★ нет отзывов — новая карточка
— ₽ цену ставите вы — бот её не выдумывает
краткое описание
преимущества
    характеристики
    полное описание
    seo-ключи для поиска
    ⚠ пробелы в данных — шаг 5 рассуждений

    ✓ название ≤ 60 символов ✓ фото 3:4 · 900×1200 ✓ инфографика без «хит продаж», цен и скидок ✓ характеристики по инструкции WB
    // почему это важно продавцу
    +100–150%
    к CTR карточки даёт проработанная инфографика: покупатель видит характеристики, не открывая описание
    −40–50%
    возвратов, когда объём, материал и размер видны прямо на фото — товар покупают осознанно
    до 25 000 ₽
    штраф WB за каждый факт маркетинговых надписей на фото: «скидка», «хит продаж», цена

    ЧТО ЭТО ЗНАЧИТ ДЛЯ ГЕНЕРАТОРА

    • Название укладывается в 60 символов и без повторов слов — иначе площадка обрежет его сама, посреди фразы
    • Буллеты для инфографики только описательные: объём, материал, состав. Рекламных плашек бот не предлагает вообще — чтобы вам не выписали штраф
    • Ранжирование WB тянет соответствие названия запросу, отзывы и конверсию; Ozon — ещё и релевантность описания и CTR. Поэтому SEO-ключи вынесены отдельным полем, а не размазаны по тексту
    • Шаг «пробелы в данных» ловит забытое: сертификат, размерную сетку, цвет. Исправить это до загрузки дешевле, чем после отклонения карточки

    Цифры — по отраслевым обзорам 2026 года: Uniseller, Kariba, МойСклад. Требования площадок меняются — актуальные всегда в кабинете продавца.

    // архитектура
    Telegramuser message
    System Promptrole: маркетолог
    +
    PDF File APIинструкция WB
    GigaChat-2LangChain invoke
    JSONстрогая схема
    Текст + PNGмакет карточки
    // задача и решение

    ЗАДАЧА

    Продавцы на WB и Ozon тратят часы на карточку и всё равно получают текст, про который непонятно, как он будет выглядеть на витрине. При ассортименте в 50–500 SKU это превращается в отдельную работу.

    РЕШЕНИЕ

    • Chain-of-thought: категория → аудитория → УТП → обязательные характеристики → пробелы в данных
    • Строгий JSON на выходе — из него собирается и текст для кабинета, и картинка
    • PDF-инструкция WB/RDV подгружается через File API как контекст
    • Визуальный макет PNG: продавец видит карточку до загрузки на площадку
    // ключевой код
    main_giga.py — строгая схема вместо прозы
    # Модель отдаёт JSON — из прозы карточку нечем отрисовать
    SCHEMA = {
        "title":       "до 60 символов, без повторов слов",
        "benefits":    ["4 пункта"],
        "specs":       [{"k": "параметр", "v": "значение"}],
        "infographic": ["описательные буллеты для фото"],
        "gaps":        "чего не хватает в данных продавца",
    }
    
    resp = giga.invoke(messages, request_kwargs={"timeout": 180})
    card = parse_card(resp.content)          # JSON + ретрай при сбое
    png  = render_card_png(card)            # тот же макет, что на сайте
    
    await update.message.reply_photo(png, caption=card["title"])
    await update.message.reply_text(as_text(card))   # для копипаста в кабинет
    // стек и особенности

    ТЕХНОЛОГИИ

    • GigaChat-2 через langchain-gigachat
    • python-telegram-bot для интерфейса
    • File API — PDF грузится один раз, ID кешируется
    • Рендер макета в PNG из HTML-шаблона

    ЧТО УМЕЕТ

    • Карточка по любому текстовому описанию товара
    • Два ответа: картинка-макет и текст для копипаста
    • Контроль длины названия и правил площадки
    • Показывает, каких данных не хватает для загрузки

    Карточка под ваш товар

    На сайте — шесть подготовленных примеров: страница статическая, ключи от модели на ней держать негде. Живой бот работает по любому запросу. А под ассортимент собираю отдельный генератор: ваши шаблоны, категории и выгрузка в кабинет.