Так, ну пока мне нравится работать с локальными агентами (если так можно сказать). Сижу пишу себе инструмент для оптимизации рабочего процесса
Суть задачи:
У меня есть таблица со списком людей, есть шаблон слайда pptx в котором несколько текстовых блоков, в которые надо список вставить. Людей нужно разделить на количество посадочных столов, сделать это рандомно и список вывести в слайде в презентации
Руками задача делается полчаса, автоматизирую процесс я уже несколько дней :D
Но есть важное предисловие: цели сделать автоматизацию ради автоматизации нет, скорее любопытство на реальном процессе освоить новый навык. Потому что к ии агентам я подступал только как обычный чат юзер, а тут можно прям покодить и жестко контролировать реализацию
Задача выступает полигоном: office + python + llm и вот получается паттерн, которые можно перенести в повторяющиеся процессы
Как решаю в коде?
1. Сначала открыть excel лист
2. Выгрузить в память все фиошки (несмотря на память)
3. Рандомно размешать
4. Рассадить по количеству столов
5. В каждом столе отсортировать по алфавиту
6. Открыть шаблон pptx
7. Получить все шейповые элементы слайда и их содержимое
8. Отдать список шейпов на обработку семантики нейронке
9. Получить шейпы для рассадки
10. Заполнить данными и сохранить (+ простые валидации)
Зачем тут ыышка вообще?
Она как раз занимается вопросом семантики шейпового блока: а в него точно можно текст вставить? А что если это заголовок? Или комментарий к слайду? Или номер слайда? И т.д.
Задача у нее тут простая: если блок содержит текст типа «Стол, столик, сотл» и т.д., то шейп нам подходит, в остальных случаях нет. То есть она по контексту и тексту понимает назначение блока, а не просто regex фильтр
🔗 Код на GH: https://github.com/mksmin/tableshuffler
Техничка:
Для pptx python-pptx
Для excel и работы с данными pandas
pydantic для валидации, а openai для ыы
Модель: Qwen 3.5 0.8B Q8_0 с отключенным thinking. GGUF версия от bartowski
https://huggingface.co/bartowski/Qwen_Qwen3.5-0.8B-GGUF
Она супер маленькая, поэтому быстро загружается и быстро отвечает, но понятно, что глупая. Поэтому важно давать четкие инструкции, ограниченный контекст и жестко заданный формат ответа
Навскидку, может заниматься распределением по категориям или теги какие-то давать материалу (классификация), собирать данные в нужной структуре, являться семантическим слоем для фильтрации и что-то в таком роде
И тут формат не «ИИ выбирает инструмент и использует его после размышлений», а «Детерминированный код отвечает за данные и действия, а ЫЫ только за неоднозначную семантику»
Пока очень прикольно. Сразу возникло несколько идей для других проектов, только уже с большими моделями по сети
Рекламный пост