Builder 2.0 — плеер становится редактором
По итогам созвона 27 августа. Сегодня отчёт — это готовая ссылка с кнопками экспорта. Следующий виток: страница отчёта становится рабочим местом — со сменой темы и языка на лету, выбором слайдов, экспортом только в нужный формат и ИИ-подсказками по каждому слайду. Ниже — что уже работает, разбор «почему отчёт готовится минуту» (спойлер: генерация занимает 4 секунды) и план действий.
01 Что уже работает
Один конвейер, четыре формата из одного источника данных. PPTX и видео добавлены 27 августа — за один день.
02 Почему отчёт «готовится минуту»
Не гадали — замерили реальный прогон конвейера (27.08, отчёт на 8 слайдов): 87 секунд от заявки до готовой ссылки. Вот из чего они состоят.
| Этап конвейера | Время |
|---|---|
| Очередь и подготовка окружения GitHub | ~16 с |
| Генерация самого отчёта | 4 с |
| Сборка вьюера — разобрано ночью: сам vite ~1.5с, остальное был лишний тайпчек (вынесен) и npm ci | 20 с |
| Сборка PPTX — блокирует ссылку, хотя ссылке не нужен | 11 с |
| Публикация на резервное зеркало — стоит ПЕРЕД боевым хостом | 20 с |
| Публикация на reports.sf-bi.ai (боевой хост) | 5 с |
| Комментарии и уведомления | ~7 с |
| Итого | ~87 с |
У отчётов из билдера сверху добавляются ИИ-подбор данных и визуальный контроль качества (~1 мин) — отсюда «одна-две минуты». Видео — отдельная статья: ~6 с рендера на каждую секунду ролика, поэтому оно и строится только по запросу.
Вывод: генерация — секунды, минута — это конвейер. Большая часть срезается простой перестановкой шагов: сначала публикуем отчёт и отдаём ссылку, а зеркала и тяжёлые артефакты доезжают следом. Остальное добивает перенос сборки на сервер SF с тёплым окружением.
03 Принципы
Рамка, в которой строится всё остальное.
04 План действий
Чекбоксы отмечаем по мере готовности — страница обновляется с каждым релизом. Идентификаторы B2-xx — для переписки: «как там B2-24?»
- Ссылки на PPTX и видео в APIPHASE-4pptxUrl / videoUrl в ответе API + выбор форматов в запросе — для интеграции на стороне SF.
- Боевой хост публикуется раньше зеркалB2-01−20 сreports.sf-bi.ai — первым, резервные зеркала — после выдачи ссылки.
- Артефакты — после выдачи ссылкиB2-02−11 сPPTX и видео собираются следом за публикацией; кнопки появляются на странице сами, когда файл готов.
- Телеметрия времени и форматовB2-05Каждый прогон пишет своё время по шагам — регрессии скорости видны сразу, а не по жалобе.
- Ускорить сборку вьюераB2-03Разобрано замером: все отчёты — одно приложение с общими шаблонами (потому фикс компонента доезжает до всех сразу), и сама сборка стоит ~0.4с на 102 отчёта (+1.3мс на каждый новый). «20 секунд» ели лишний тайпчек и npm ci — тайпчек вынесен. Вердикт: инкрементальная сборка не нужна, экономила бы миллисекунды.
- Конвейер на сервере SFB2-04цель 15–20 сждём SSHDocker-окружение (Node + Chrome + ffmpeg) на ноде SF: без очередей GitHub, с тёплым кэшем. GitHub остаётся резервом.
- Автопроверка PPTX-файла в конвейере2.3Валидация формата при каждой сборке — битый файл ловится до клиента и никогда не блокирует сам отчёт.
- Staging-копия вьюераB2-10Отдельный адрес со всеми отчётами, куда изменения попадают до продакшена. Работает: тестовый контур развёрнут и проверен живым деплоем.
- Автосравнение скриншотов прод / стейджингB2-11Каждая правка автоматически проверяется на выборке отданных отчётов — попиксельно, до выкатки. Первый прогон: 55 слайдов, расхождение 0.0000%.
- Каркас панели Report SettingsB2-20Theme / Language / Slides / Export в тулбаре плеера; кнопки форматов — равного веса; настройки шарятся ссылкой. Работает на тестовом стенде.
- Дизайн-система в двух темахB2-21Светлая библиотека построена переносом по перцептивной светлоте (не инверсией) и отполирована по фидбеку: звонкий двухуровневый акцент, лёгкие серые, мягкие тени, светлые версии логотипов. Тёмная — прежняя (гейт: 0.0000%).
- Тёмная тема на всех ~60 шаблонахB2-22Прокат по всей библиотеке: 491 прибитый цвет переведён в токены, каждый шаблон отсмотрен в обеих темах.
- Экспорт в выбранной темеB2-23PDF, PPTX и видео уважают включённую тему — тёмный дек скачивается тёмным.
- Выбор слайдов перед экспортомB2-24Отметить 3 слайда из 15 — и получить PDF ровно из них. Работает на тестовом стенде.
- Сборка произвольной комбинации по запросуB2-26Кнопка Generate: выбранные слайды × тема × язык × формат собираются за секунды; повторный запрос — мгновенно из кэша.
- Схема хранения переводовB2-30Переводы живут рядом с отчётом; числа, бренды и ссылки не переводятся; термины — по фиксированному глоссарию.
- Перевод отчёта и переключатель в плеереB2-31Украинский / английский первыми; переключение — мгновенное, без пересборки отчёта. Живое демо на тестовом стенде.
- Экспорт на выбранном языкеB2-32PPTX украинской версии открывается в PowerPoint с корректной кириллицей и вшитыми шрифтами.
- Поле languages в APIB2-33Интеграция SF может заказывать языки прямо в запросе.
- Экспортёр XLSXB2-40Лист на каждый слайд с данными, культурное оформление: шапка в бренд-цвете, числовые форматы, аккуратные ширины.
- Excel в конвейер + кнопка в плеереB2-41Строится с каждым отчётом, как PPTX; ссылка в API и кнопка на странице.
- Живой Google Sheet по ссылкеB2-42нужно решениеЕсли файла .xlsx недостаточно — отдаём готовую Google-таблицу.
- Прототип UXB2-50Контролы у слайда, инсайт-карточка в стилистике отчёта — сначала на тестовом деке.
- Сервис инсайтовB2-51ИИ разбирает данные слайда в контексте всего дека; ответы кэшируются — повторный клик мгновенный.
- Аудио-подкаст по отчётуОзвученная выжимка дека — по приоритету позже всех форматов.
- «Добавить в новый отчёт»Отбор слайдов из готовых отчётов в новый дек — отдельный виток билдера.
- PDF готовым файломСимметрия с PPTX: не диалог печати, а готовый файл по ссылке.
04b Что потрогать уже сейчас
Тестовый стенд — отдельный адрес, боевые отчёты клиентов не тронуты (это проверяется автоматическим попиксельным сравнением при каждой выкатке).
- Панель настроек — шестерёнка в тулбаре: тема, язык, выбор слайдов та же ссылка с ?theme=light — светлая тема целиком
- Переключение языка — отчёт фонда Ахметова целиком на украинском (переведён и системный слой: заголовки, колонки, легенды) в списке пять языков: английский, немецкий, итальянский, украинский, казахский
- Кнопка Export — дропдаун: PDF · PowerPoint · Excel · Видео, у каждого формата своя иконка все четыре файла скачиваются прямо со стенда; выбор слайдов переехал в настройки
- Выбор слайдов — в настройках: галочки прямо на слайдах, PDF печатает ровно отмеченные выбор живёт в ссылке (…?slides=1,3-5) — её можно переслать
- AI «Tell me more» — прототип: наведи на слайд, нажми искру — под слайдом раскрывается инсайт кликабельное демо на живом деке
05 Нужны решения
Пять вопросов, которые определяют порядок работ.
Языки первой очереди— решено: английский, немецкий, итальянский, украинский, казахский все пять уже в списке; казахский стоит вычитать носителю перед первым деком- Тёмная тема — выбор пользователя, или тёмная становится дефолтом?
- Excel: достаточно файла .xlsx, или нужна именно живая Google-таблица по ссылке?
- «Инфографика» с доски — что имелось в виду? отдельный формат-выжимка, стиль слайдов или что-то третье — уточнить до планирования
- Что показываем первым: панель (тема + выбор слайдов) или язык на лету?
06 Что нужно со стороны SF
Три пункта для Антона — все уже обсуждались, собраны здесь для удобства.
- SSH-доступ к ноде под Docker-окружение сборки главный разблокер целевых 15–20 секунд и бесплатного видео-рендера
- Правка nginx:
location /api/со слэшем + раздача артефактов за пределами/assets/две известные особенности текущего конфига, обе уже описаны - Перевыпустить ключ Anthropic (прошлая одноразовая ссылка истекла) и включить авто-пополнение без него отчёты из билдера эскалируют вместо генерации