Skip to content
 
 

Repository files navigation

Pragma

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 і новіших).

Встановлення

1. Передумови

  • Python 3.10+ (переконайтеся, що опцію "Add Python to PATH" вибрано під час встановлення).
  • Tesseract OCR (необхідний для роботи локального розпізнавання тексту). Під час встановлення рекомендується додати мовні пакети (українська, англійська).

2. Встановлення залежностей

Відкрийте термінал у директорії проєкту та виконайте команду:

pip install -r requirements.txt

3. Налаштування середовища

Створіть файл .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 — Список залежностей проєкту.

About

простий форк на Wrata з своїми плюшками (поки тільки підтримка WIN 10/11)

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages