01
2–3 часа на одно КП
Дизайнер вручную копирует позиции из XLSB-прайса в шаблон, пишет описания «по памяти», подставляет фото, клеит таблицы. Каждое предложение — ручная сборка.
№00 · MADE WITH AI · ЯНДЕКС ПРАКТИКУМ · 2026
Производственный AI-инструмент для мебельной компании.
209 коммерческих предложений · 1 658 визуализаций · 256 млн ₽ — за 60 дней.
№01 · ДО
01
Дизайнер вручную копирует позиции из XLSB-прайса в шаблон, пишет описания «по памяти», подставляет фото, клеит таблицы. Каждое предложение — ручная сборка.
02
Клиент видит только сухие фото мебели в каталоге. Нет «как это будет выглядеть в моей комнате» — нет эмоции на этапе предложения, нет wow-эффекта.
03
Разные шаблоны, разные пороги подарков, разные брендинг-блоки. Каждый дизайнер пересобирает КП под город руками — ошибки и разночтения неизбежны.
№02 · ПОСЛЕ
Минута от прайса до готового DOCX. Дизайнер не пересобирает КП руками и не рисует визуализации в Photoshop — система делает это сама.
ПРОДУКТ 01 · МЕБЕЛЬ КП
XLSB-прайс + фото мебели → DOCX с AI-описаниями и интерьерной визуализацией.
.xlsb читается напрямую — без конверсии в .xlsx, без потерь форматирования.PALADIO, RAFAEL, VOLPI и другие) маппятся в человекочитаемые описания для AI-промта.209 КП в продакшне 256 млн ₽ объём 97,8% с AI-описаниями
ПРОДУКТ 02 · ДВЕРИ КП
Авторасчёт по нескольким прайсам сразу. То, что в Excel считается полдня — здесь делается за минуту.
3 прайс-файла 6 наполнений 0 ручного расчёта
ПРОДУКТ 03 · AI-RENDER
Дизайнер загружает фото комнаты и промт — модель возвращает рендер сцены с мебелью Реформы. Клиент видит свою комнату, пока ничего не купил.
httpxmiddleware/rate_limit.py через GenerationRateLimiter.visualization_logs — статус (PENDING / PROCESSING / COMPLETED / FAILED), время обработки, IP, user-agent, размеры.retention_service удаляет файл и помечает запись.GET /api/visualization/quota отдаёт {limit, used, remaining, reset_at} — UI показывает «3 из 15 осталось» прямо в кабинете.1 658 рендеров 20,5 сек среднее 15/день на дизайнера
№03 · АРХИТЕКТУРА
Production-grade Python-стек: FastAPI 100% async, PostgreSQL 15, systemd на хосте. Никаких блокирующих вызовов на hot path-е — один воркер uvicorn держит сотни одновременных запросов.
Слой 01 · Клиент
SPA на Composition API. JWT в localStorage с auto-refresh при 401. Pinia stores для auth, темы, чата. Polling-чат: 3 сек когда открыт, 10 сек свернут — минус сложность WebSocket-инфраструктуры. ui-neumorphism как кастомная design-система: тактильность без Material UI.
↓ HTTPS · HTTP/2
Слой 02 · Шлюз
Reverse-proxy: статика frontend сразу с диска, /api → uvicorn на 127.0.0.1:9080. Кэш woff2/png/css на 30 дней. Auto-renew SSL через certbot cron.
↓ uvicorn · 4 workers
Слой 03 · Backend
Тонкие роутеры → бизнес-логика в services/. Pydantic-валидация на границе HTTP. SQLAlchemy 2.0 async + asyncpg — нет sync-блокировок. Eager-loading через selectinload и joinedload: N+1 невозможен. Rate-limit: 60/мин глобально + 15/день на AI-визуализации per user. JWT с access 30 мин и refresh 7 дней. Mail.ru OAuth на альтернативу логину.
PIPELINE КП
upload → парсер XLSB → AI-описания → DOCX-движок → шаблон города → /generated/*.docx
PostgreSQL 15
asyncpg, без sync-fallbackrole, city, kp_typeAI-сервис
httpxvisualization_logsФайловая система
uploads/ — XLSB-прайсы и фото мебелиgenerated/ — итоговые DOCXchat/YYYY/MM/ — вложения чатаretention_service)№ 01
FastAPI handlers, SQLAlchemy 2.0 async с asyncpg, httpx для AI-провайдера. Нет ни одного sync-вызова на hot path. Один воркер uvicorn держит сотни одновременных запросов.
№ 02
Роутер только валидирует и зовёт сервис: route → schema → service → ORM → response. Бизнес-логика в services/: парсер, DOCX-генератор, retention, AI-клиент. Тестируется без HTTP-стека.
№ 03
Append-only журнал доступа к PII (pii_access_log). Отдельная история согласий, нельзя переписать. Self-service удаление аккаунта с анонимизацией. Brute-force защита: счётчик попыток + locked_until.
№ 04
Backend живёт как systemd-сервис на хосте — прямой доступ к файловой системе, рестарт через systemctl restart. Docker только под БД. Структурированные логи с trace_id на каждый запрос.
№04 · МЕТРИКИ · ИЗ ПРОДАКШН-БД · 2026-04-28
Все значения — реальные, выгружены из production PostgreSQL непосредственно при подготовке этой презентации.
01 / 08
0
Совокупная стоимость коммерческих предложений, выпущенных через сервис.
prod DB · 2026-04-28 · table: kp_documents · sum(total_price_full)
02 / 08
0
Коммерческих предложений за 60 дней.
с 1 марта 2026 · ~25 КП в неделю · 115 за последние 30 дней
03 / 08
0
AI-визуализаций интерьера для клиентов.
в среднем 33 рендера в день · async pipeline
04 / 08
0
Success rate AI-визуализаций.
production-grade надёжность · стабильно под нагрузкой
05 / 08
0
Позиций мебели с AI-описаниями.
531 из 543 · средняя длина 389 символов
06 / 08
0
Adoption — дизайнеров в активном использовании.
17 из 20 designer-аккаунтов сгенерировали ≥ 1 КП
07 / 08
0
Рост AI-генераций март → апрель.
587 → 1 041 · команда наращивает использование
08 / 08
0
Среднее время одного AI-рендера.
end-to-end · от запроса к финальному PNG
№05 · В ДЕЛЕ
/generate · загрузка XLSB-прайса и фото мебели
/ai-render · до и после
№06 · АДОПШН
После одного дня онбординга весь дизайн-департамент Реформы перешёл на regenkp.ru. 17 из 20 в активном использовании. Топ-5 дизайнеров за первые 60 дней:
* Имена анонимизированы инициалами. География: Уфа — 153 КП (73%), Москва — 56 КП (27%).
№07 · ЧТО ДАЛЬШЕ