TKBK Studio
TKBK Studio
Название, описание и характеристики под правила каждой площадки — по одному товару или сотнями из CSV
Веб-приложение для селлера: вводите товар в форму или загружаете CSV с артикулами, названиями, характеристиками и ключевыми словами — нейросеть через TKBK API пишет карточку отдельно для Wildberries, Ozon и Яндекс Маркета с учётом их лимитов и правил.
Каждый текст проверяется на стоп-слова маркетплейсов («лучший», «хит», «скидка», названия других площадок), ссылки, телефоны, эмодзи и капс. Если нашлись нарушения, нейросеть получает их список и исправляет карточку, а длины гарантированно обрезаются до лимита площадки.
Результат — XLSX с листом на каждую площадку или CSV для Excel. В отличие от онлайн-сервисов, правила и стоп-слова лежат в коде и меняются под вашу нишу, а история заданий хранится у вас.
Для кого: Селлеры, контент-менеджеры и агентства, которые заводят карточки на маркетплейсах
Ключи и токены не вводятся на сайте — их кладут в файл .env на своём сервере.
TKBK_API_KEYКлюч TKBK API — tkbk.online → личный кабинет → API-ключиAPP_PASSWORDПароль входа в интерфейс — Пусто — временный пароль выводится в лог при запуске# Генератор карточек для Wildberries, Ozon и Яндекс Маркета
Веб-приложение пишет название, описание и характеристики товара сразу под три площадки — с их лимитами
и правилами. Один товар — через форму, сотни — из CSV. Нейросеть работает через TKBK API
(`https://api.tkbk.online/v1/messages`, модель `{{AI_MODEL}}`), результат выгружается в CSV и XLSX.
## Что умеет
- Карточка под каждую площадку отдельно: у WB название до 60 символов и без бренда, у Ozon формула
«тип + бренд + модель + характеристики», у ЯМ — коротко и по делу.
- Лимиты: название — до {{TITLE_MAX}} символов (у WB никогда больше 60), описание WB — до 5000, Ozon и ЯМ — до 6000.
- Проверка стоп-слов: «лучший», «хит», «скидка», «оригинал», названия маркетплейсов, ссылки, телефоны,
e-mail, эмодзи, капс, «!!!» и ваши слова из мастера.
- Если нейросеть нарушила правила — одна автоматическая попытка исправить; что осталось, видно в
колонке «Предупреждения». Длины гарантированно обрезаются по границе слова/предложения.
- Массовый режим из CSV с прогрессом, параллельно до `CONCURRENCY` запросов, повтор при 429/5xx.
- Выгрузка XLSX (лист на площадку) и CSV для Excel. История заданий хранится в SQLite.
- Вход по логину и паролю — чтобы никто чужой не тратил ваш баланс TKBK.
## Запуск за 5 минут
### С Docker
```bash
cp .env.example .env # впишите TKBK_API_KEY и APP_PASSWORD
docker compose up -d --build
```
Откройте http://localhost:8000 (логин `admin`). Если пароль не задан — временный в логах:
`docker compose logs cards`.
### Без Docker (Python 3.12)
```bash
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # Windows: copy .env.example .env
python -m app
```
## Где взять ключ TKBK API
1. Зарегистрируйтесь на [tkbk.online](https://tkbk.online) и пополните баланс.
2. Личный кабинет → **API-ключи** → «Создать ключ».
3. Вставьте его в `.env`: `TKBK_API_KEY=...`.
Модель выбрана в мастере. Поменять можно в `.env`: `TKBK_MODEL=claude-sonnet-5` (лучшие тексты) или
`TKBK_MODEL=claude-haiku-4-5` (быстрее и дешевле — для больших каталогов).
## Формат CSV
```
артикул;название;характеристики;ключевые слова
TS-001;Футболка оверсайз женская;"Цвет: чёрный; Материал: хлопок 100%";футболка женская, оверсайз
```
- Обязательна только колонка «название». Заголовки можно писать по-английски: `sku, name, characteristics, keywords`.
- Разделитель — `;`, `,` или табуляция. Если в ячейке есть разделитель, возьмите её в кавычки (Excel делает это сам).
- Кодировка UTF-8 или Windows-1251 (обычный «CSV (разделители — точки с запятой)» из Excel).
- Пример — кнопка «Скачать пример» в интерфейсе или файл `example.csv`.
## Настройки из мастера
В `app/config.py` (константы `WIZARD_*`): бренд, тон текста, модель, максимальная длина названия и ваши
стоп-слова. Переопределяются в `.env`: `BRAND`, `TONE`, `TKBK_MODEL`, `TITLE_MAX`, `EXTRA_STOP_WORDS`.
Правила площадок (лимиты и подсказки нейросети) — в `app/limits.py`, стоп-слова — в `app/stopwords.py`.
## Тесты
```bash
pip install pytest==9.1.1
pytest
```
Тесты не ходят в сеть: ответы TKBK API подменены `httpx.MockTransport`.
## FAQ
**Сколько стоит?** Одна карточка — один запрос (плюс один, если нужно исправление) к модели на ~2–4 тыс.
токенов. Точная цена — в тарифах TKBK. Для больших каталогов берите `claude-haiku-4-5`.
**Нейросеть выдумывает характеристики?** В запросе прямо запрещено придумывать факты, но проверяйте
карточки перед публикацией — особенно состав, размеры и сертификаты.
**Почему в предупреждениях «описание короче рекомендуемых»?** Мало исходных данных — добавьте
характеристики и ключевые слова, и описание станет полнее.
**Задание «прервано».** Приложение перезапускали во время генерации. Загрузите файл ещё раз.
## Ограничения
- Стоп-слова — проверка по словарю, а не юридическая экспертиза: правила площадок меняются, сверяйтесь
со справкой продавца и дополняйте `app/stopwords.py`.
- Приложение не публикует карточки на площадки — только готовит тексты для загрузки (Excel-шаблоны
площадок или их API).
- Лимит загрузки — 5 МБ и `MAX_ROWS` строк за раз.
Оценка 0–10 после заказа: довольных — на Яндекс Карты, 2ГИС и WB, недовольных — сразу к менеджеру
Претензии покупателей по артикулам — размер, качество, брак, упаковка — и что поправить в карточке
Выручка, заказы, возвраты, остатки с прогнозом и юнит-экономика трёх маркетплейсов на одной странице