Skip to content

Damask-asm/OpenAiKeyChecker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Учебный валидатор API-ключей

Desktop-приложение на Python/Tkinter для локального хранения и проверки собственных API-ключей на указанном сервере.

Дисклеймер

Программа предназначена только для образовательных целей. Автор не несет ответственности за использование программы.

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

Скриншот

Главное окно приложения

Возможности

  • импорт ключей из текстового поля;
  • генерация тестовых строк старого и нового формата в отдельном мастере;
  • меню Настройки с сохранением URL сервера проверки и количества потоков в SQLite;
  • локальное шифрование ключей мастер-паролем;
  • хранение в SQLite;
  • проверка ключей через указанный URL API;
  • многопоточная проверка вставленного списка или всей базы с возможностью остановки;
  • нижний прогресс-бар для текущей проверки;
  • отображение HTTP-статуса, количества моделей и rate limit headers;
  • поиск, сортировка и цветовая индикация статусов;
  • копирование полного ключа двойным кликом или через контекстное меню строки;
  • перепроверка и удаление отдельного ключа через контекстное меню;
  • удаление выбранного ключа из локальной базы;
  • очистка всех ключей со статусом invalid;
  • полная очистка локальной базы с двойным подтверждением.

Установка

Требуется Python 3.10+.

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -U pip
python -m pip install -r requirements.txt

Запуск

python main.py

При запуске приложение запросит мастер-пароль. Этот пароль используется только локально для расшифровки ключей из openai_keys.sqlite3.

Если пароль не подходит к существующей базе, приложение предложит ввести пароль снова, удалить локальную базу или выйти.

Перед проверкой откройте Настройки -> Параметры проверки... и укажите URL сервера проверки. Именно на этот адрес будут отправляться HTTP-запросы с заголовком Authorization: Bearer .... Там же задается количество потоков. Настройки сохраняются в openai_keys.sqlite3. По умолчанию указан локальный учебный endpoint http://localhost:8000/v1/models.

Документация

Подробная документация находится в каталоге docs/.

Тесты

python -m unittest discover -s tests

Релизы

Релизная Windows-сборка создается автоматически при push тега вида v*:

git tag v0.1.0
git push origin v0.1.0

GitHub Actions собирает main.py через PyInstaller в один оконный EXE, упаковывает его в ZIP и загружает asset в GitHub Release. Приложение проверяет новые версии через GitHub Releases при запуске и через меню Справка -> Проверить обновления....

Структура проекта

OpenAiKeyChecker/
|-- main.py
|-- requirements.txt
|-- README.md
|-- assets/
|-- docs/
|-- tests/
|-- openai_keys.sqlite3
`-- openai_key_checker/
    |-- app.py
    |-- config.py
    |-- crypto.py
    |-- key_generator.py
    |-- models.py
    |-- openai_client.py
    |-- scanner.py
    |-- storage.py
    |-- update_checker.py
    |-- version.py
    `-- ui/
        |-- dialogs.py
        |-- generator_window.py
        |-- main_view.py
        |-- settings_dialog.py
        `-- theme.py

Модули

  • main.py - короткая точка входа.
  • openai_key_checker/app.py - контроллер приложения и пользовательские действия.
  • openai_key_checker/storage.py - SQLite, миграция схемы, шифрование/расшифровка записей.
  • openai_key_checker/openai_client.py - HTTP-проверка ключей через указанный API URL.
  • openai_key_checker/scanner.py - фоновая многопоточная очередь проверок.
  • openai_key_checker/crypto.py - Fernet-ключ, маскирование и хэш ключа.
  • openai_key_checker/key_generator.py - генерация тестовых строк старого и нового формата.
  • openai_key_checker/update_checker.py - проверка новых версий через GitHub Releases.
  • openai_key_checker/version.py - версия приложения, в релизной сборке заполняется тегом.
  • openai_key_checker/models.py - dataclass-модели записей и результатов.
  • openai_key_checker/config.py - пути, заголовок приложения, дисклеймер и URL API по умолчанию.
  • openai_key_checker/ui/main_view.py - построение основного окна Tkinter.
  • openai_key_checker/ui/generator_window.py - окно мастера генерации ключей.
  • openai_key_checker/ui/settings_dialog.py - окно сохранения параметров проверки.
  • openai_key_checker/ui/dialogs.py - кастомные диалоги входа и удаления базы.
  • openai_key_checker/ui/theme.py - тема и стили ttk.

Статусы

Статус Значение
valid API вернул 200 OK
invalid API отклонил ключ
network_error сетевой сбой или таймаут
unknown ключ еще не проверялся

Безопасность

  • Ключи хранятся в SQLite в зашифрованном виде.
  • Для поиска дубликатов используется SHA-256 хэш ключа.
  • Полный ключ показывается только при расшифровке для копирования или проверки.
  • Файл openai_keys.sqlite3 остается локальным артефактом проекта.

About

Fast OpenAI API key checker with balance, model access and validity verification.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages