Mck-ppt-design-skill
likaku/Mck-ppt-design-skillAI-нативная система генерации PowerPoint в консалтинговом стиле: 65 шаблонов макетов, движок BLOCK_ARC для диаграмм, пайплайн QA после генерации, библиотека иконок. Работает на python-pptx, переносит ~80% вычислений с GPU на CPU.
Установка
pip install python-pptx lxmlREADME
MCK PPT Design Skill
AI-нативная система дизайна PowerPoint — 65 макетов · движок диаграмм BLOCK_ARC · пайплайн QA после генерации · библиотека иконок · Python runtime
Copyright © 2024-2026 Kaku Li. Лицензия Apache 2.0. Подробности в NOTICE.
Сообщество
⚡ v1.x → v2.0 — Ключевое изменение: GPU → CPU
v2.0 — это не просто экономия токенов на слайдах с диаграммами. Фундаментальное изменение — перенос ~80% вычислений с GPU (инференс LLM) на CPU (детерминированное выполнение Python).
В v1.x каждый пиксель каждого слайда генерировался AI-моделью — координаты, цвета, отступы, всё производилось токен за токеном через GPU-инференс. v2.0 переворачивает это с ног на голову: AI принимает высокоуровневые решения («использовать кольцевую диаграмму, 3 сегмента»), а затем Python-функции на стороне CPU берут на себя 80% работы, которая никогда и не требовала языковой модели.
Ключевая проблема v1.x
v1.x использовал чистую GPU-архитектуру. Весь SKILL.md (6 100 строк дизайн-спецификаций) находился в контекстном окне AI. Для каждого слайда модель должна была:
- Прочитать спецификацию макета из контекста (~500 токенов)
- Вычислить точные координаты в пикселях, размеры шрифтов, коды цветов (~200 токенов «размышлений»)
- Вывести сырые вызовы
add_shape()/add_rect()с захардкоженными числами (~800 токенов на слайд)
Для диаграмм это было катастрофой: кольцевая диаграмма требовала от AI вывода 2 800 отдельных вызовов add_rect() — каждый из которых вычислялся GPU. Одна сложная диаграмма могла стоить ~2 минуты инференса, создавать файл 5 МБ и сжигать 40 000+ выходных токенов для колоды из 30 слайдов.
AI выполнял работу, с которой справился бы цикл for. Вот в чём настоящая проблема.
Как v2.0 решает это: функционализация
Ключевое наблюдение: большая часть генерации PPT — это детерминированные вычисления, а не понимание языка. v2.0 выносит эту детерминированную работу в Python-функции, выполняемые на CPU:
# v1.x: GPU вычисляет каждую координату (200+ токенов на диаграмму)
for angle in range(0, 360):
add_rect(slide, x + cos(angle)*r, y + sin(angle)*r, ...) # Каждая строка = GPU-токены
# v2.0: GPU решает ЧТО строить, CPU обрабатывает КАК
eng.donut_chart(title='Revenue', segments=[('A', 45, NAVY), ('B', 35, BLUE)])
# ↑ AI выводит ~20 токенов → CPU выполняет 2 745 строк детерминированного PythonЧто перенесено с GPU на CPU:
- Математика координат — позиции в пикселях, расчёты отступов, динамическое масштабирование
- Рендеринг фигур — дуги
BLOCK_ARCзаменяют стопки прямоугольников (1 фигура вместо 2 800) - Очистка XML —
_clean_shape(),full_cleanup(), инъекция CJK-шрифтов - Логика макета — ширина колонок, высота строк, предотвращение переполнения
- Контроль качества — весь пайплайн QA + автоисправление [v2.3]
Что остаётся на GPU:
- Решения по контенту — какой макет использовать, какой текст писать, структура повествования
- Дизайн-суждения — акценты, иерархия, визуальный сторителлинг
- Понимание контекста — адаптация к намерению пользователя, тону, аудитории
v1.x vs v2.0 — Техническое сравнение
| v1.x (чистый GPU) | v2.0 (GPU + CPU) | |
|---|---|---|
| Распределение вычислений | ~100% GPU (все токены) | ~20% GPU (решения) + ~80% CPU (выполнение) |
| Рендеринг диаграмм | Стопки add_rect() (100–2 800 фигур/диаграмма) | Нативные дуги BLOCK_ARC (3–4 фигуры/диаграмма) |
| Генерация кода | AI пишет сырые add_shape() / координатную математику на каждый слайд | AI вызывает eng.donut_chart(), eng.cover() и т.д. — 65 высокоуровневых методов |
| Итераций на колоду из 30 слайдов | 10–15 (метод проб и ошибок) | 3–4 (детерминированно) |
| Выходных токенов на колоду | 40 000–60 000 | 9 000–12 000 |
| Время генерации диаграммы | ~2 мин (GPU-инференс) | <1 сек (CPU-выполнение) |
| Размер файла (много диаграмм) | 2–5 МБ | 0,5–1 МБ |
| Защита от повреждения файла | Базовая очистка XML | Трёхуровневая защита (санитизация p:style, теней, 3D) |
| Обработка CJK | Ручная установка шрифтов (GPU) | Автоматический set_ea_font() для всех CJK-текстовых фрагментов (CPU) |
| Архитектура | Одноуровневая (только SKILL.md) | Трёхуровневая (SKILL.md + Python-движок + постобработка) |
Трёхуровневая архитектура v2.0
┌─────────────────────────────────────────────────────────┐
│ Уровень 1: SKILL.md (Дизайн-спецификация) │
│ ├── 65 шаблонов макетов с точными координатами │
│ ├── Цветовая система + типографическая иерархия │
│ ├── 9 производственных ограничений │
│ └── Спецификация рендеринга диаграмм BLOCK_ARC │
├─────────────────────────────────────────────────────────┤
│ Уровень 2: Python-движок (Детерминированное выполнение)│
│ ├── 65 высокоуровневых методов генерации макетов │
│ ├── Движок диаграмм BLOCK_ARC │
│ ├── Автоматическая обработка CJK-шрифтов │
│ └── Математика координат и логика макета │
├─────────────────────────────────────────────────────────┤
│ Уровень 3: Пайплайн постобработки [v2.3] │
│ ├── Автоматизированный QA (проверка 12 правил) │
│ ├── Автоисправление обнаруженных проблем │
│ ├── Трёхуровневая защита от повреждения файла │
│ └── Финальная валидация перед сохранением │
└─────────────────────────────────────────────────────────┘
Полная документация, примеры и инструкции по установке доступны в репозитории: https://github.com/likaku/Mck-ppt-design-skill