О клиенте
Наш клиент стремился оптимизировать процесс подготовки и редактирования презентаций PowerPoint. Ранее пользователям приходилось вручную корректировать текст на отдельных слайдах и проверять его соответствие шаблону презентации.
Для повышения эффективности работы требовалось интегрировать ИИ-помощника непосредственно в PowerPoint, сохранив полный контроль пользователя над редактированием. Решение должно было улучшать формулировки, грамматику и читаемость текста без изменения макетов слайдов и внесения несанкционированных правок.
- Платформа: Microsoft PowerPoint
- Отрасль: ПО для повышения продуктивности, ИИ
- Тип приложения: настольный плагин для Microsoft Office
Задача проекта
Решение должно было обеспечить работу ИИ непосредственно в PowerPoint с учетом особенностей архитектуры Office и требований к безопасности. Таким образом, основные задачи включали:
- Интеграцию плагина в PowerPoint с использованием VSTO и COM Interop.
- Анализ структуры презентации и подготовку компактного набора данных для ИИ без передачи исходного файла .pptx.
- Интеграцию LLM для улучшения формулировок, грамматики и ясности текста.
- Сохранение удобства использования интерфейса во время ИИ-запросов.
- Предварительный просмотр предлагаемых изменений и обязательное подтверждение перед применением.
- Ограничение редактирования существующими текстовыми элементами слайдов без изменения их структуры и макетов.
- Защиту API-ключей и содержимого презентации от ненужного раскрытия.
- Поддержку нескольких поставщиков LLM и настраиваемых API-адресов.
- Создание современного интерфейса на WPF с темами оформления и переключением языков.
- Автоматизированное тестирование ключевой логики анализа презентаций и подготовки запросов к ИИ.
Решение
Инженеры СКЭНД разработали Prezentable — VSTO-плагин для Microsoft PowerPoint на базе C# и .NET Framework 4.8, который обеспечивал интеллектуальное редактирование презентаций с помощью ИИ.
Для взаимодействия с PowerPoint использовался COM Interop, пользовательский интерфейс был реализован на WPF, а обработка текста выполнялась через API, совместимый с OpenAI.
Вместо передачи исходного файла презентации плагин извлекал необходимые данные и формировал структурированный объект PresentationSnapshot, который передавался языковой модели. На его основе ИИ генерировал структурированный набор текстовых правок.
Пользователи могли просматривать предложенные изменения, корректировать их и подтверждать применение, сохраняя полный контроль над редактированием презентации.
Основные возможности плагина
- Интеграция с PowerPoint: Отдельная вкладка Prezentable и встроенная боковая панель на базе VSTO.
- Анализ презентаций: Извлечение текста, структуры слайдов, параметров оформления и данных о фигурах, включая сгруппированные объекты.
- ИИ-редактирование текста: Улучшение формулировок, грамматики и читаемости с сохранением исходного языка и смысла.
- Контролируемое применение изменений: Предварительный просмотр и редактирование предложенных правок с подтверждением пользователя; изменение только существующих текстовых элементов без вмешательства в макеты слайдов.
- Асинхронная обработка запросов: Сохранение отзывчивости PowerPoint, поддержка отмены запросов и повторных попыток.
- Безопасность и интеграция с LLM: Защита API-ключей с помощью Windows DPAPI, поддержка переменных окружения и подключение различных провайдеров, включая OpenAI, Gemini, Mistral и Ollama.
- Современный интерфейс и локализация: WPF, MahApps.Metro и Caliburn.Micro, светлая и темная темы, 18 акцентных цветов и переключение между английским и русским языками.
- Автоматизированное тестирование: Проверка логики анализа презентаций, формирования запросов и обработки данных без установленного PowerPoint.
Технологический стек
Для реализации Prezentable команда СКЭНД подобрала технологический стек, обеспечивающий интеграцию с Microsoft PowerPoint, безопасное взаимодействие с языковыми моделями, стабильную обработку запросов и удобный пользовательский интерфейс.
- Основные технологии: C#, .NET Framework 4.8, VSTO, Visual Studio, MSBuild.
- Интеграция с PowerPoint: COM Interop, Microsoft.Office.Core, Ribbon XML, Custom Task Panes.
- Пользовательский интерфейс: WPF, MahApps.Metro 2.4, Caliburn.Micro, WinForms ElementHost.
- Интеграция с ИИ: OpenAI-compatible API, z.ai GLM-4.7-Flash, различные LLM-провайдеры и пользовательские API-эндпоинты.
- Обработка запросов: HttpClient, Task.Run, CancellationToken, тайм-ауты, повторные запросы и защита от устаревших ответов.
- Обработка презентаций: PresentationSnapshot, JSON, Open XML SDK, PowerPoint COM Interop.
- Обработка правок ИИ: PromptBuilder, PatchParser, AiPatch, PatchApplier.
- Безопасность и управление ресурсами: Windows DPAPI, переменные окружения, ComScope, Marshal.ReleaseComObject.
- Тестирование: Prezentable.Tests, автоматизированные модульные тесты и проверка обработки данных Open XML.
Результаты
СКЭНД создала решение, которое позволяет улучшать текст презентаций непосредственно в PowerPoint, сохраняя контроль пользователя над каждой правкой, предложенной ИИ.
Ключевым результатом стала реализация контролируемого процесса «Извлечение данных → ИИ-обработка → Применение изменений». Плагин передает модели структурированные сведения, а не исходный файл презентации, и ограничивает изменения существующими текстовыми элементами.
Дополнительно решение обеспечивает:
- Контроль над изменениями: Ни одна ИИ-правка не применяется без предварительного просмотра и подтверждения пользователя.
- Стабильную работу PowerPoint: Асинхронная обработка запросов позволяет не блокировать интерфейс во время взаимодействия с языковой моделью.
- Повышенную безопасность: Защита API-ключей с помощью DPAPI и поддержка переменных окружения.
- Улучшенное управление ресурсами: Централизованное управление COM-объектами помогает снизить риск утечек памяти и проблем при завершении работы приложения.
- Гибкость интеграции: Поддержка нескольких LLM-провайдеров и пользовательских API-адресов.
- Удобство использования: Современный интерфейс с темами оформления и локализацией на английский и русский языки.
- Автоматизированное тестирование: Проверка логики анализа, формирования запросов и обработки данных Open XML без необходимости устанавливать PowerPoint.