Как стать автором
Обновить

Как я научил
 буфер обмена думать

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3K
обложка
обложка

Привет, Хабр! Меня зовут Виталий, и я снова тут, чтобы рассказать про свою очередную реализованную идею. Как я упоминал в прошлой статье «Как я гифку с помощью ИИ сжимал», я по профессии графический дизайнер, а не программист. Но это не мешает мне создавать полезные инструменты с помощью ИИ.

В этот раз я хочу рассказать о том, как создал ClipGen — утилиту, которая превращает обычный буфер обмена в мощный инструмент для работы с текстом и изображениями. Весь код программы я выложил как open-source, чтобы каждый мог доработать его под свои нужды, сделав ещё удобнее и функциональнее. Ссылку на репозиторий я дам в конце статьи.

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

Так возникла идея фоновой утилиты с горячими клавишами для мгновенной обработки выделенного текста — без лишних действий и переключений между окнами. Так родился ClipGen.

Что умеет ClipGen?
ClipGen — это десктопная утилита на Python, которая работает с буфером обмена и использует Google Gemini API для обработки текста и изображений. Вот что она может:

Всё это работает через горячие клавиши, без необходимости открывать отдельное окно. Выделил текст → нажал комбинацию → готово. Работает в любой программе, где есть текстовый ввод (будь то Word, Telegram или браузер). Если вставить текст нельзя, результат отобразится в интерфейсе ClipGen. Короткие тексты обрабатываются за 0.5 секунды, длинные — за секунды.

А что происходит "под капотом" при каждом нажатии? Алгоритм работы прост и эффективен: когда вы нажимаете горячую клавишу (например, Ctrl+F3 для перевода или Ctrl+F10 для анализа изображения), ClipGen автоматически эмулирует Ctrl+C для копирования выделенного контента в буфер обмена. Затем программа считывает содержимое буфера и использует конкретный промпт, привязанный к этой комбинации клавиш. Для Ctrl+F3 это будет промпт для перевода, для Ctrl+F10 — промпт для анализа изображений и так далее. Выбранный промпт вместе с вашим контентом отправляется в API Gemini, где нейросеть обрабатывает запрос и возвращает результат. После получения ответа ClipGen помещает его в буфер обмена и эмулирует Ctrl+V для вставки. Весь этот процесс происходит асинхронно в отдельном потоке, поэтому основной интерфейс не зависает и вы можете продолжать работу.

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

  • Исправление текста (Ctrl+F1): исправляет грамматику, пунктуацию, орфографию, приводит текст в порядок с правильными тире и кавычками «ёлочками».

  • Переписывание (Ctrl+F2): улучшает читаемость текста, исправляет косяки голосового ввода и даже заменяет мат на цензурные, но эмоциональные выражения.

  • Перевод (Ctrl+F3): переводит текст между 140+ языками — с русского на английский или наоборот, если текст уже на русском.

  • Объяснение (Ctrl+F6): объясняет сложные термины или концепции простыми словами с примерами.

  • Ответы на вопросы (Ctrl+F7): отвечает на вопросы из буфера обмена.

  • Кастомные запросы (Ctrl+F8): выполняет любую задачу, так же из буфера.

  • Саркастические комментарии (Ctrl+F9): генерирует остроумные комментарии (экспериментальная функция).

  • Анализ изображений (Ctrl+F10): извлекает текст из картинок, переводит его (если нужно) и объясняет, что изображено.

Как это работает: немного про внутренности
ClipGen написан на Python, и вот основные компоненты:

  • Google Gemini API: я использую модель gemini-2.0-flash-exp. Она быстрая, точная и поддерживает работу с текстом и изображениями. Бесплатный лимит — 1000 запросов в день, а если нужно больше, можно подключить второй ключ или другую модель.

  • Горячие клавиши: библиотека pynput слушает нажатия клавиш, а pywin32 эмулирует копирование и вставку (пока только для Windows).

  • Интерфейс: customtkinter отвечает за минималистичное окно с логами и кнопками. Изначально я не хотел делать интерфейс, но оказалось, что он совсем не лишний — с ним гораздо удобнее, чем с голой консолью.

  • Многопоточность: ThreadPoolExecutor и multiprocessing.Queue обеспечивают асинхронную обработку запросов, чтобы ничего не зависало.

Когда вы нажимаете горячую клавишу, ClipGen копирует выделенный текст (или берёт картинку из буфера), отправляет его в Gemini с нужным промптом, получает ответ и вставляет результат обратно.

Вот пример промпта для исправления текста (из config_ru.json):

"prompt": "Пожалуйста, исправь следующий текст. Поправь грамматику, пунктуацию и орфографию, не изменяй смысл текста... Обязательно верни ТОЛЬКО исправленный текст без лишних комментариев и пояснений это очень важно! За неисполнение этого правила штраф 15$:"

Штраф в 15 баксов, конечно, шутка — это чтобы Gemini не добавляла лишнего. Хотя, признаюсь, Gemini иногда любит поболтать сверх меры, и порой даже строгие промпты бессильны. Но ошибки она допускает крайне редко — всё же проверять результат стоит.

Почему это бесплатно?
Google щедро раздаёт доступ к Gemini API: регистрируешься в Google AI Studio, получаешь ключ — и вперёд. 1000 запросов в день хватает на всё: от исправления писем до анализа мемов.

Установка:

  1. Клонируете репозиторий: git clone https://github.com/Veta-one/clipgen.git.

  2. Ставите зависимости: pip install -r requirements.txt.

  3. Берёте бесплатный ключ в Google AI Studio.

  4. Вставляете ключ в config_en.json или config_ru.json.

  5. Запускаете: python main.py

Пока работает только на Windows, но в планах добавить macOS и Linux. Всё open-source, код на GitHub.

Кому это пригодится?

  1. Писателям и редакторам: моментально править текст, не открывая сторонние инструменты.

  2. Студентам: быстро разбираться с терминами или переводить материалы.

  3. Разработчикам: чистить сообщения об ошибках или вытаскивать текст из скриншотов.

  4. Всем остальным: исправлять опечатки в мессенджерах или понимать, что за картинку вам скинули.

Я использую ClipGen ежедневно. Недавно в длинном сообщении в Telegram допустил ошибки с запятыми и окончаниями. Выделил → Ctrl+F1 → и текст мгновенно стал грамотным.

Что было сложно?

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

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

Планы

ClipGen уже работает, и я планирую его улучшать:

  • Поддержка macOS и Linux.

  • Интеграция с другими API.

  • Настройка горячих клавиш прямо в интерфейсе.

Если у вас есть идеи или желание помочь — добро пожаловать в репозиторий.

Итог

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

Репозиторий: github.com/Veta-one/clipgen

Если хотите поддержать проект: USDT TRC20: TEJw2gRrW5Z6Drowk7icjp5DhZvAEPwCYY

Спасибо, что дочитали до конца <3

Теги:
Хабы:
+14
Комментарии15

Публикации

Истории

Работа

Data Scientist
48 вакансий

Ближайшие события

25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область