Pragma — це утиліта для Windows (10/11), призначена для швидкого захоплення робочої області екрану, розпізнавання тексту та отримання відповідей на запитання за допомогою нейромереж. Результати роботи можуть виводитися через Telegram-бота або за допомогою вбудованого оверлею, який є невидимим для програм захоплення екрану (наприклад, OBS).
- Швидке захоплення екрану: Робіть скриншот робочої області за допомогою налаштовуваної гарячої клавіші (за замовчуванням
F8). Підтримується робота з кількома моніторами (знімок робиться з того монітора, де знаходиться курсор миші). - Два режими виводу:
- Telegram: Отримання результатів безпосередньо у вигляді повідомлень від вашого бота.
- Оверлей: Вивід результатів у напівпрозорому вікні поверх усіх інших вікон. Оверлей підтримує налаштування прозорості та перетягування.
- Підтримка декількох AI-моделей: Інтеграція з Mistral, Gemini, OpenAI (GPT-4o) та Anthropic (Claude 3.5 Sonnet). Скрипт підтримує автоматичне перемикання на наступну доступну модель (fallback) у разі вичерпання лімітів або виникнення помилки.
- Локальний OCR (Tesseract): Для зменшення затримок та економії токенів API, програма спочатку намагається розпізнати текст локально, і лише за необхідності (якщо тексту недостатньо або це зображення) використовує Vision-моделі.
- Керування через Telegram: Зручна взаємодія з програмою через Telegram-бота (виконання скриншоту, зміна активної моделі, перевірка статусу програми).
- Невидимість для OBS: Оверлей налаштовано таким чином, щоб він не захоплювався програмами для стрімінгу та запису екрану (функція працює на Windows 10 версії 20H1 і новіших).
- Python 3.10+ (переконайтеся, що опцію "Add Python to PATH" вибрано під час встановлення).
- Tesseract OCR (необхідний для роботи локального розпізнавання тексту). Під час встановлення рекомендується додати мовні пакети (українська, англійська).
Відкрийте термінал у директорії проєкту та виконайте команду:
pip install -r requirements.txtСтворіть файл .env на основі шаблону .env.example:
cp .env.example .envВідредагуйте файл .env, вказавши ваші API-ключі та базові налаштування:
BOT_TOKEN: Токен вашого Telegram-бота (можна отримати у @BotFather).CHAT_ID: Ваш ідентифікатор у Telegram (можна дізнатися через @userinfobot).MISTRAL_API_KEY: API-ключ від Mistral (console.mistral.ai).OPENROUTER_API_KEY: API-ключ від OpenRouter (openrouter.ai) для використання Gemini, OpenAI та Anthropic.HOTKEY: Клавіша або комбінація для створення скриншоту (наприклад,f8,ctrl+shift+s).QUIT_HOTKEY: Комбінація для завершення роботи (наприклад,ctrl+alt+shift+q).SOLVER_MODEL: Базова модель для генерації відповідей (наприклад,mistral-large-latest).ENABLE_LOGGING: Збереження історії запитів у файлhistory.log(trueабоfalse).
Усі системні запити (промпти) зберігаються у файлі prompts.json. Їх можна змінювати для налаштування формату або стилю відповідей під ваші потреби без втручання в код.
Для запуску програми використовуйте один із варіантів:
- Через термінал:
python main.py
- Без відображення консолі (Windows):
Запустіть файл
start.bat.
Для зупинки програми запустіть скрипт stop.bat або використайте гарячу клавішу QUIT_HOTKEY.
При першому запуску програма відобразить вікно для вибору режиму роботи (тільки Telegram або Telegram + Оверлей). Після вибору режиму вона перейде у фоновий режим очікування натискання гарячої клавіші.
main.py— Точка входу в програму (ініціалізація потоків та основного циклу).bot.py— Модуль для взаємодії з Telegram API.llm.py— Логіка звернень до API нейромереж, обробка fallback-ланцюжка та виклик локального OCR.capture.py— Модуль створення скриншотів.overlay.py— Графічний інтерфейс (оверлей) та контекстне меню, реалізовані на Tkinter.config.py— Зчитування параметрів конфігурації та шаблонів запитів.prompts.json— Шаблони промптів для AI-моделей.requirements.txt— Список залежностей проєкту.