Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Автоматическое переименование и сортировка скриншотов с помощью локальной ИИ: мой опыт настройки Ollama и Qwen2.5-VL

Автоматическое переименование и сортировка скриншотов с помощью локальной ИИ: мой опыт настройки Ollama и Qwen2.5-VL

При подготовке разборов, инструкций и обзоров программного обеспечения мне приходится делать десятки снимков экрана ежедневно. Каждому файлу требуется понятное и наглядное имя, отражающее его содержимое, перед тем как задействовать его в материале. В операционной системе macOS скриншоты по умолчанию получают неинформативные имена формата «Снимок экрана 2026-09-19 в 04.03.31.png». Прерывать работу, открывать каждый снимок, вручную вчитываться в интерфейс и вбивать понятные названия — процесс крайне рутинный и затратный по времени.

Идея автоматизировать эту задачу появилась после того, как я увидел пример применения Apple Intelligence через штатные Быстрые команды macOS для распознавания содержимого снимков. Мне захотелось воссоздать подобный конвейер, но с использованием полностью локальной нейросети, работающей без обращения к облачным сервисам и сторонним подпискам.

От ручного переименования к поиску идеальной автоматизации

При подготовке разборов, инструкций и обзоров программного обеспечения мне приходится делать десятки снимков экрана ежедневно. Каждому файлу требуется понятное и наглядное имя, отражающее его содержимое, перед тем как задействовать его в материале. В операционной системе macOS скриншоты по умолчанию получают неинформативные имена формата «Снимок экрана 2026-09-19 в 04.03.31.png». Прерывать работу, открывать каждый снимок, вручную вчитываться в интерфейс и вбивать понятные названия — процесс крайне рутинный и затратный по времени.

Реклама
Общий вид рабочего пространства с фоново работающим скриптом
Бесшовный процесс работы: создание снимка и его автоматическая фоновая обработка.

Идея автоматизировать эту задачу появилась после того, как я увидел пример применения Apple Intelligence через штатные Быстрые команды macOS для распознавания содержимого снимков. Мне захотелось воссоздать подобный конвейер, но с использованием полностью локальной нейросети, работающей без обращения к облачным сервисам и сторонним подпискам.

Структура Python-проекта для обработки и сортировки снимков экрана
Архитектура Python-скрипта, использующего библиотеки Watchdog и Pydantic для обработки входящих файлов.
Определение Pydantic-схемы для валидации ответа нейросети
Использование Pydantic для получения строго структурированных данных (название, категория, уверенность).
Настройка отслеживания изменений папки с помощью библиотеки Watchdog
Обработчик событий Watchdog, фиксирующий момент сохранения нового снимка экрана.
Пример сгенерированного имени файла и категории сортировки
Преобразование стандартного имени macOS в осмысленное название с датой и категорией.

Как я развивал схему: от веб-интерфейсов до прямого доступа к файлам

Путь к финальному автономному решению состоял из нескольких последовательных этапов:

Проверка логики отправки сомнительных файлов в папку Needs Review
Механизм распределения файлов с низким коэффициентом уверенности в специальный каталог.
Файл конфигурации LaunchAgent для автоматического запуска в macOS
Настройка фоновой службы LaunchAgent для старта Python-скрипта при входе пользователя.
  • Ручной анализ через чат-боты: На первом этапе я просто загружал снимки экрана в веб-интерфейсы ChatGPT или Claude, получал сгенерированное текстовое описание и переименовывал файлы вручную. Это разгружало голову, но сохраняло ручной труд.
  • Веб-инструмент на базе Anthropic Haiku: Затем с помощью Claude Code я собрал небольшое веб-приложение. Модель Haiku анализировала изображение и выдавала для скачивания новый файл с верным именем. Главным минусом стало дублирование: исходный файл с неинформативным именем оставался в папке, а рядом появлялась его переименованная копия.
  • Специальный навык (Skill) для Claude Code: Для устранения дубликатов я написал навык для Claude Code. Благодаря прямому доступу к файловой системе инструмент обрабатывал и переименовывал исходный файл на месте. Однако неудобство сохранялось: приходилось открывать Терминал, переходить в нужную директорию и запускать команду вручную.

Локальные мультимодальные модели как основа решения

Современные мультимодальные нейросети (Vision Models) способны не просто генерировать текст, но и анализировать визуальные данные — изображения, интерфейсы программ и тексты на снимках экрана. Они распознают ключевые элементы на снимке, считывают заголовки окон и формируют точные краткие сводки. Это позволяет переложить задачу по считыванию графической информации на локальный искусственный интеллект.

Пошаговое построение полностью локального конвейера

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

Выбор модели и инструментария

Чтобы исключить зависимость от облаков и постоянных подключений к сети, я развернул систему локально через Ollama. В качестве распознающей модели я выбрал Qwen2.5-VL 3B — компактную мультимодальную модель. Ее мощности вполне достаточно для точного распознавания деталей на снимках экрана, при этом она работает быстро и не перегружает видеопамять компьютера.

Реклама

На стороне операционной системы я создал отдельную папку для скриншотов и перенастроил системный путь сохранения macOS. Для обработки событий я создал Python-проект, задействовав три ключевых компонента:

  • Ollama: отвечает за взаимодействие с локальной нейросетью Qwen2.5-VL;
  • Watchdog: отслеживает появление новых файлов в целевой директории в режиме реального времени;
  • Pydantic: гарантирует строгое форматирование и валидацию ответа модели в формате JSON.

Как работает Python-скрипт сортировки

Логика работы созданного скрипта выглядит следующим образом:

Просмотр структурированных подпапок с отсортированными скриншотами
Итоговая структура директории с распределенными по темам снимками экрана.
Сравнение времени обработки между облачной и локальной моделями
Замеры времени выполнения запроса при анализе графических файлов локально.
Интерфейс Claude Code при создании первичного навыка
Промежуточный этап создания CLI-инструмента для прямого переименования файлов.
Веб-интерфейс прототипа приложения для загрузки скриншотов
Первая версия инструмента, требовавшая ручной загрузки изображений через браузер.
Настройка системных комбинаций клавиш для снимков экрана в macOS
Перенаправление стандартного пути сохранения скриншотов в рабочую папку скрипта.
  1. При появлении нового снимка экрана в целевой папке библиотека Watchdog фиксирует событие и делает паузу, необходимую для завершения записи файла операционной системой.
  2. Снимок передается модели Qwen2.5-VL через Ollama.
  3. Нейросеть генерирует короткое описательное название, определяет подходящую категорию (например, Work, University, Research, Messages или Personal) и выставляет собственную оценку уверенности (confidence score).
  4. Скрипт формирует итоговое имя файла с добавлением текущей даты (например, 2026-09-19_ollama-app-installation.png), удаляет лишние символы, переименовывает исходник и перемещает его в соответствующую подпапку.

Защита от ошибок: папка «Needs Review»

Для предотвращения неверной сортировки в случае неоднозначных снимков я предусмотрел защитный механизм. Если уровень уверенности модели опускается ниже заданного порога, файл отправляется в специальную папку «Needs Review» для быстрой ручной проверки, а не распределяется ошибочно по рабочим каталогам.

Автозапуск в фоновом режиме через macOS LaunchAgent

Необходимость каждый раз запускать скрипт через Терминал нарушала концепцию полной автоматизации. Чтобы сделать процесс незаметным, я оформил фоновую службу с помощью службы LaunchAgent в macOS. Теперь скрипт автоматически запускается при входе в систему, постоянно мониторит папку и обрабатывает новые файлы без какого-либо участия пользователя.

Скорость работы, плюсы и неизбежные компромиссы

При сравнении локального подхода с облачными решениями можно выделить несколько особенностей:

  • Скорость обработки: Облачные нейросети (например, через Claude API) отрабатывают быстрее, тогда как локальная модель Qwen2.5-VL 3B на локальном железе требует чуть больше времени на анализ одного снимка.
  • Автономность и приватность: Локальная схема полностью бесплатна, работает без подключения к интернету и не передает снимки экрана на сторонние серверы.
  • Комплексная организация: В отличие от базового переименования, скрипт не просто меняет название файла, а раскладывает снимки по соответствующим категориальным папкам.

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

Источник: www.xda-developers.com

01.