Генерируем презентации с помощью GigaChat и Kandinsky

в 8:06, , рубрики: GigaChat, kandinsky, kandinsky 3.1, powerpoint, генерация презентаций, искуственный интеллект
Генерируем презентации с помощью GigaChat и Kandinsky - 1

Все мы время от времени сталкиваемся с необходимостью сделать презентацию, даже если наша работа, казалось бы, этого не предполагает. Часто это трудоёмкая задача, которая досадно надолго отвлекает от просмотра мемов действительно важных дел вроде написания кода и обучения моделей.

Мы решили проверить, насколько современные LLM и модели генерации изображений могут тут облегчить нам жизнь, учитывая, насколько мощно они продвинулись в последние годы. Для этого мы собрали MVP на базе GigaChat-Max и Kandinsky 3.1, принимающий на вход текстовый запрос и количество слайдов и генерирующий файл презентации в формате .pptx.

Для первого подхода к снаряду мы сформировали относительно простой базовый конвейер, который включает в себя генерацию заголовков и текстов слайдов с помощью GigaChat с последующей генерацией изображений с помощью Kandinsky. В итоге весь синтезированный контент наполняет слайды презентации по несложным шаблонам. Далее мы расскажем обо всех шагах подробно и покажем, что получилось. Но если вам не очень хочется читать и уже хочется что-нибудь сгенерировать, то мы подняли space на Hugging Face.

Скрытый текст

Он на ZeroGPU, так что индивидуальной квоты хватит только на генерацию 1 презентации из 5-7 слайдов, потом придётся ждать. Впрочем, если открыть space в режиме инкогнито, не логинясь, и поменять IP, то будет новая квота ;)

Или, если не хочется ждать, то вот несколько интересных и забавных примеров работы: захват мира ИИ, ИТ баги и кофеин, тайная жизнь принтера, первобытный код, кот не главный в доме, cat behavior, procrastination.

Что происходит под капотом

Чтобы сгенерировать презентацию, мы:

  1. Получаем текстовый запрос от пользователя. На этом этапе пользователь вводит описание презентации, задающее её тематику и содержание

  2. Генерируем заголовки слайдов с помощью GigaChat. Модель анализирует описание и генерирует краткие заголовки для каждого слайда

  3. Создаём текстовое содержание слайдов. GigaChat генерирует текст для каждого слайда на основе заголовков, созданных на предыдущем этапе, и описания, введённого пользователем

  4. Генерируем запросы для визуализации. Чтобы обогатить презентацию визуальным содержанием, GigaChat создаёт детализированные запросы для генерации изображений, учитывая контекст всей презентации и заголовок каждого слайда. Эти текстовые запросы далее подаются в модель Kandinsky для генерации изображений или фона

  5. Собираем презентацию с помощью python-pptx. Наконец, все сгенерированные элементы помещаются в шаблон презентации

Рассмотрим подробнее каждый из шагов.

Генерируем заголовки слайдов с помощью GigaChat

Мы генерируем заголовки слайдов, отправляя следующий промт в GigaChat (здесь user_query — это запрос пользователя, например, «Презентация про слонов»):

Тебе дано описание презентации: "{user_query}".На основе данного описания и примеров сгенерируй заголовки слайдов презентации.Заголовок должен быть коротким, не более 4 слов.Представь ответ в виде нумерованного списка.

Примеры

Запрос

Заголовки слайдов на выходе модели

Презентация о стратегии маркетинга для нового продукта.

1. Введение
2. Цели маркетинга
3. Анализ рынка
4. Стратегия продвижения
5. Каналы распространения
6. KPI и метрики
7. Заключение

Достижения компании за прошлый год.

1. Приветствие
2. Общие достижения
3. Финансовые результаты
4. Успешные проекты
5. Развитие команды
6. Социальные инициативы
7. Планы на будущее
8. Благодарности
9. Вопросы и ответы

Презентация о новых технологиях в производстве.

1. Введение в тему
2. Текущие технологии
3. Новые разработки
4. Примеры внедрения
5. Преимущества
6. Заключение

Результатом выполнения этого шага является сформированная структура презентации.

Создаём текстовое содержание слайдов

После того как мы сформировали структуру и заголовки, нам необходимо наполнить слайды содержанием. В первую очередь это будет текст, который мы создаём, используя следующую инструкцию к GigaChat:

Тебе дано описание презентации: "{user_query}".Напиши одно предложение не более 20 слов для слайда с заголовком "{title}".Напиши только итоговый текст, начинай с "Текст: ".

Примеры

Запрос

Заголовок слайда

Текст на слайде

Базовые понятия экономики

Потребности и ресурсы

Основные понятия экономики включают спрос, предложение, цену и конкуренцию

Экономические агенты

Потребности человека определяют необходимость использования ограниченных ресурсов

Рынок и спрос

Экономические агенты включают домохозяйства, фирмы и государство, взаимодействующие в экономике

Предложение и цена

Рынок и спрос определяют взаимодействие между покупателями и продавцами

Равновесие

Предложение и цена определяют взаимодействие между спросом и предложением на рынке

Роль государства

Равновесие достигается, когда спрос равен предложению при данной цене

GigaChat создаёт неплохой текст для презентаций в определённой стилистике, например, по фундаментальным темам.

Генерируем запросы для визуализации

Итак, текст готов. Давайте теперь посмотрим, как мы можем оформить нашу презентацию с визуальной точки зрения. Мы хотели бы использовать изображения как в качестве иллюстраций, так и в качестве фона для слайдов. Для этого нам нужно сформировать промты, которые будут подаваться на вход модели Kandinsky. С этой целью мы используем следующие текстовые запросы к GigaChat.

Для иллюстрации на слайде

Для генерации описаний изображений используется следующий текстовый запрос к GigaChat с учётом общей тематики презентации и заголовка слайда:

Тебе дано описание презентации: "{user_query}".Придумай детализированное описание эстетичной картинки для слайда с заголовком: "{title}".Описание должно быть длинным и супер детализированным, включающим все аспекты визуальной составляющей.Исключи цифровые значения, текст, графики, названия компаний и тому подобное.Избегай использования текста на изображении.Сделай его визуально приятным и подходящим контексту.Начни со слова "описание: ".

Примеры

Запрос

Заголовок слайда

Описание изображения

Базовые понятия экономики

Потребности и ресурсы

В центре композиции находится большой зеленый круг, символизирующий потребности. Внутри круга изображены различные человеческие фигуры, каждая из которых представляет разные типы потребностей: физиологические (например, еда и вода), социальные (общение и принадлежность к группе), духовные (познание и саморазвитие) и другие. Эти фигуры плавно переходят друг в друга, создавая ощущение единства и взаимосвязанности.

Экономические агенты

В центре композиции находится большая цветная диаграмма, состоящая из нескольких секторов разных размеров и цветов. Каждый сектор символизирует определенный тип экономического агента: домохозяйства, фирмы, государство и международные организации. Диаграмма выполнена в ярких, но не кричащих цветах, чтобы подчеркнуть важность каждого элемента.

Рынок и спрос

В центре композиции находится рынок – это может быть оживленная городская площадь или просторный торговый зал. По краям площади расположены прилавки с разнообразными товарами: фруктами, овощами, одеждой, электроникой и другими предметами первой необходимости. На заднем плане виднеются здания.

Предложение и цена

В центре слайда находится изображение большого, красивого цветка, символизирующего предложение. Лепестки цветка выполнены в разных оттенках синего цвета, что создает ощущение глубины и объема. Каждый лепесток имеет свой уникальный узор, подчеркивающий разнообразие и сложность предложения на рынке. В центре цветка расположен желтый бутон, который символизирует цену.

Равновесие

На слайде изображена спокойная водная гладь озера, окруженная зелеными холмами и лесами. В центре озера находится небольшой островок, покрытый густой растительностью. На острове можно заметить небольшое дерево, ветви которого тянутся к небу, создавая ощущение гармонии и равновесия. Вокруг острова плавают несколько белых лебедей, их плавные движения символизируют стабильность и баланс.

Роль государства

Центральное место занимает изображение здания парламента или правительства, выполненное в классическом стиле с колоннами и куполом. Здание окружено зелеными насаждениями и аккуратными дорожками, что символизирует стабильность и порядок.

Для фона слайда

Для генерации описания фона всех слайдов презентации мы случайным образом выбираем один из 14 стилей фона (background_style). Вот некоторые из возможных стилей:

  • Gradient: без текста, векторный стиль, плавные переходы цветов.

  • Abstract: чистые линии, современный вид, минимализм, мягкие цвета, элегантный вид.

  • Nature-inspired: узоры листьев, мягкие зелёные тона, природные текстуры.

  • Technology: футуристический дизайн, синие тона, узоры схем.

  • Corporate: профессиональный вид, тонкие градиенты, нейтральные цвета, бизнес-ориентированный стиль.

Для генерации описания фона слайда мы применяем набор ключевых слов (keywords), задающих общую абстрактную стилистику. Чтобы их выделить мы используем следующий текстовый запрос для GigaChat:

На основании описания презентации: "{user_query}" и заголовка текущего слайда: "{title}" сгенерируй 4 ключевых слова. Напиши их через запятую.

Примеры

Запрос

Заголовок слайда

Ключевые слова

Базовые понятия экономики

Потребности и ресурсы

потребности, ресурсы, экономика, базовые

Экономические агенты

экономические агенты, субъекты, рынки, взаимодействие

Рынок и спрос

рынок, спрос, предложение, цена

Предложение и цена

предложение, цена, спрос, рынок

Равновесие

равновесие, спрос, предложение, рынок

Роль государства

роль государства, регулирование, бюджет, социальная политика

Совместив набор ключевых слов для каждого слайда со стилями, описанными выше, мы подаём в Kandinsky промт вида: "{keywords}, {background_style}" (уже в переведённом на английский язык виде, как этого требует входной формат модели Kandinsky). Например:

The role of the state, regulation, budget, social policy, Corporate, Professional look, Subtle gradients, Clean and polished, Neutral colors, Business-oriented.

Таким образом, мы получаем возможность генерировать для каждого слайда уникальный и уместный фон.

Собираем презентацию с помощью python-pptx

Разумеется, просто сгенерировать текст и изображения недостаточно. Необходимо адекватно расположить это всё на слайде. Мы подготовили три шаблона: один для титульного слайда и два для остальных.

Титульный слайд

Имеет сгенерированный фон и расположенную по центру тему презентации на полупрозрачной подложке.

Титульный слайд

Титульный слайд

Остальные слайды

Другие слайды предполагают случайный выбор одного из двух форматов расположения текста и изображений:

  1. Белый слайд с прямоугольным (например, квадратным) изображением, дополняющим текст

    Слайд с прямоугольным изображением и текстом на белом фоне

    Слайд с прямоугольным изображением и текстом на белом фоне
  2. Сгенерированный фон и добавление текста поверх него на полупрозрачной подложке

Добавление текста поверх сгенерированного фона

Добавление текста поверх сгенерированного фона

Заключение

В этой статье мы рассказали о том, какой прототип генератора презентаций нам удалось собрать с помощью GigaСhat и Kandinsky. Конечно, текущие результаты еще далеки от идеала, но даже сейчас можно сэкономить немного времени, собрав себе за пару минут основу для дальнейшей доработки, причём с уникальными визуализациями и стилем. Вот несколько интересных и забавных примеров, которые у нас получилось сгенерировать: захват мира ИИ, ИТ баги и кофеин, тайная жизнь принтера, первобытный код, кот не главный в доме, cat behavior, procrastination.

Авторы и их вклад

Описанный в статье инструмент для создания презентаций создан в команде Sber AI на основе большой языковой модели GigaChat, разработанной командой SberDevices, и модели генерации изображений по тексту Kandinsky, разработанной в команде Sber AI при участии исследователей из института искусственного интеллекта AIRI.
Коллектив авторов: Саид Азизов, Николай Герасименко, Анна Аверченкова, Вячеслав Васильев, Эвелина Миронова, Андрей Кузнецов и Денис Димитров.

Контакты для коммуникации

По всем возникающим вопросам и предложениям по развитию модели, добавлению новых возможностей и сотрудничеству в части использования наших разработок можно писать Денису или Андрею.

Полезные ссылки

Автор: nikgerasimenko

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js