Зачем автоматизировать создание карточек для Wildberries
Каждый селлер знает: хорошая карточка — это продающее описание и цепляющая обложка. Но вручную писать тексты для десятков товаров и рисовать картинки — бесконечная рутина. Две российские нейросети, YandexGPT и Kandinsky, умеют делать это за секунды. Настроив простой Python-скрипт, вы сможете по одному названию товара получать готовый контент для загрузки на маркетплейс. Бесплатные лимиты покрывают потребности небольшого магазина, а для работы не нужны VPN и иностранные карты.
В этом гайде мы шаг за шагом создадим генератор карточек: от установки библиотек до сохранения файлов с SEO-описанием и обложкой. Даже если вы никогда не писали код, инструкция проведёт вас по каждому действию.
Что понадобится
- Компьютер с Python 3.8 или выше.
- API-ключи от Яндекс.Облака (YandexGPT) и Fusion Brain (Kandinsky). Оба сервиса бесплатны в пределах стартовых лимитов: грант в 4000 ₽ от Яндекса и 100 генераций в день у Kandinsky.
- Базовое понимание, как запускать программы в терминале.
Все шаги описаны максимально подробно, с готовыми фрагментами кода.
Шаг 1. Получаем ключи доступа
YandexGPT:
- Перейдите в консоль Яндекс.Облака, зарегистрируйтесь или войдите.
- Создайте платёжный аккаунт (деньги не спишутся, активируется пробный период с грантом).
- В разделе «Сервисные аккаунты» создайте новый аккаунт с ролью
ai.languageModels.user. - Создайте API-ключ для этого аккаунта — он выглядит как длинная строка символов. Сохраните её.
- Запишите идентификатор каталога (folder_id), он отображается в консоли.
Kandinsky:
- Зайдите на fusionbrain.ai, авторизуйтесь через почту или Сбер ID.
- Перейдите в раздел «API», создайте новый ключ, скопируйте его.
Ключи будем хранить в файле .env, чтобы не публиковать в коде.
Шаг 2. Установка окружения и библиотек
Создайте папку проекта, например wb_card_generator, и внутри неё файл .env с содержимым:
YANDEX_API_KEY=ваш_ключ_яндекс
YANDEX_FOLDER_ID=ваш_folder_id
KANDINSKY_API_KEY=ваш_ключ_kandinsky
text
Откройте терминал в папке проекта и установите необходимые библиотеки:
pip install requests python-dotenv pillow
Теперь создадим файл generate_card.py — именно в нём будет вся логика.
Шаг 3. Генерация продающего описания через YandexGPT
В начале generate_card.py пропишем импорты и загрузку переменных окружения:
python
import os
import requests
import base64
from PIL import Image
from io import BytesIO
from dotenv import load_dotenv
import datetime
load_dotenv()
YANDEX_KEY = os.getenv("YANDEX_API_KEY")
YANDEX_FOLDER_ID = os.getenv("YANDEX_FOLDER_ID")
KANDINSKY_KEY = os.getenv("KANDINSKY_API_KEY")
Функция для отправки запроса к YandexGPT (модель yandexgpt-lite):
python
def ask_yandexgpt(prompt_text, temperature=0.6):
url = "https://llm.api.cloud.yandex.net/foundationModels/v1/completion"
headers = {
"Authorization": f"Api-Key {YANDEX_KEY}",
"x-folder-id": YANDEX_FOLDER_ID,
"Content-Type": "application/json"
}
data = {
"modelUri": f"gpt://{YANDEX_FOLDER_ID}/yandexgpt-lite",
"completionOptions": {
"stream": False,
"temperature": temperature,
"maxTokens": "1000"
},
"messages": [{"role": "user", "text": prompt_text}]
}
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
return response.json()["result"]["alternatives"][0]["message"]["text"]
Теперь напишем функцию, которая генерирует описание по названию товара и ключевым характеристикам:
python
def generate_description(product_name, features=""):
prompt = (
f"Ты — профессиональный копирайтер для Wildberries. Напиши продающее описание товара "
f"'{product_name}'. Характеристики: {features if features else 'стандартные'}.\n"
"Требования:\n"
"- Длина: 300-400 символов.\n"
"- Структура: выгоды, технические детали, призыв купить.\n"
"- Тон: доверительный, грамотный.\n"
"- Используй ключевые слова: 'купить {product_name}', 'цена', 'доставка'.\n"
"Не используй шаблонные фразы 'добро пожаловать', 'здравствуйте'."
)
return ask_yandexgpt(prompt, temperature=0.7)
Проверить можно так (после объявления функций, в конце файла):
python
if __name__ == "__main__":
test_desc = generate_description("Умная колонка Яндекс Станция Лайт", "цвет синий, голосовой помощник Алиса")
print(test_desc)
Запустите python generate_card.py и посмотрите на результат. Нейросеть выдаст готовый текст, пригодный для поля «описание» в карточке.
Шаг 4. Генерация обложки товара через Kandinsky
Добавим функцию, которая создаёт изображение по описанию товара. Чтобы обложка подходила под требования Wildberries (предметная, без лишнего фона), мы сформулируем строгий промпт:
python
def generate_cover(product_name, output_path):
prompt = (
f"Professional product photo of {product_name}, isolated on white background, "
"studio lighting, high resolution, 3/4 angle, clean and sharp details, "
"no text, no watermarks, no labels"
)
url = "https://api-key.fusionbrain.ai/key/api/v1/txt2img"
headers = {
"X-Key": f"Key {KANDINSKY_KEY}",
"Content-Type": "application/json"
}
payload = {
"model_id": 4,
"params": {
"type": "GENERATE",
"style": "UHD",
"width": 900, # квадратное изображение
"height": 900,
"num_images": 1,
"negativePromptUnclip": "текст, буквы, водяные знаки, логотипы, подписи",
"generateParams": {
"query": prompt
}
}
}
resp = requests.post(url, headers=headers, json=payload)
resp.raise_for_status()
img_base64 = resp.json()["images"][0]
img = Image.open(BytesIO(base64.b64decode(img_base64)))
img.save(output_path, "WEBP")
print(f"Обложка сохранена: {output_path}")
Обратите внимание: размер 900x900 пикселей — стандарт для Wildberries. Если нужен другой, просто измените width и height.
Шаг 5. Собираем всё в единый генератор
Теперь объединим обе функции в одну процедуру, которая создаёт полный пакет для карточки:
python
def create_wb_card(product_name, features=""):
timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
safe_name = product_name.replace(" ", "_").lower()
# Генерируем описание
desc = generate_description(product_name, features)
desc_filename = f"{safe_name}_desc_{timestamp}.txt"
with open(desc_filename, "w", encoding="utf-8") as f:
f.write(desc)
print(f"Описание сохранено: {desc_filename}")
# Генерируем обложку
cover_filename = f"{safe_name}_cover_{timestamp}.webp"
generate_cover(product_name, cover_filename)
print("\nГотово! Карточка для товара готова:")
print(f"Описание: {desc[:100]}...")
print(f"Обложка: {cover_filename}")
if __name__ == "__main__":
product = input("Введите название товара: ")
features = input("Введите характеристики (можно пропустить): ")
create_wb_card(product, features)
Сохраните файл. Запустите скрипт:
bash
python generate_card.py
Введите название товара, например «Беспроводные наушники Xiaomi Redmi Buds 4». Через несколько секунд в папке проекта появятся два файла: текстовое описание и квадратная обложка.
Шаг 6. Как обрабатывать много товаров сразу
Чтобы автоматизировать массовую генерацию, положите список товаров в CSV-файл products.csv со столбцами name и features. Модифицируйте скрипт:
python
import csv
def process_csv(file_path):
with open(file_path, "r", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
create_wb_card(row["name"], row.get("features", ""))
Теперь можно запускать:
python
if __name__ == "__main__":
process_csv("products.csv")
За один прогон скрипт подготовит десятки карточек — останется только загрузить их в личный кабинет Wildberries.
Возможные улучшения
Добавить генерацию SEO-заголовков и ключевых слов через YandexGPT.
Подгружать реальные фотографии, если есть (Kandinsky пока не всегда идеально воспроизводит конкретный товар, но для бюджетных ниш работает отлично).
Автоматически заполнять Excel-шаблон Wildberries через библиотеку openpyxl.
Полезные ссылки:
Яндекс.Облако https://cloud.yandex.ru/
Fusion Brain https://fusionbrain.ai/