Skip to content

Десктопное приложение для автоматического распознавания вопросов и предоставления ответов с использованием локальных LLM моделей. Поддерживает несколько языков, транскрипцию речи и автоответы на вопросы. Разработано на Python с использованием PyQt6.

License

Notifications You must be signed in to change notification settings

ChayannFamali/AIAssistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Assistant

version python license

AI Assistant десктопное приложение для помощи в деловых переговоровах через средства связи по типу Zoom, Skype, Teams и пр, разработанное на Python с использованием PyQt6. Приложение автоматически распознаёт вопросы в речи и предоставляет краткие, точные ответы с помощью локальной LLM модели.

Особенности

  • Автоматическое распознавание вопросов: приложение анализирует речь в реальном времени и определяет, задаётся ли вопрос.
  • Три режима работы:
    • Ручной ввод
    • Только прослушивание (транскрипция)
    • Автоответы на вопросы
  • Поддержка нескольких языков: автоматическое определение языка (русский, английский и др.)
  • Локальная обработка: все данные обрабатываются на устройстве, без отправки в облако
  • Гибкие настройки: аудио, модель, интерфейс, горячие клавиши
  • История диалогов: автоматическое сохранение и экспорт сессий
  • Мониторинг производительности: отслеживание скорости генерации, использования памяти и других метрик

Архитектура

Приложение построено по модульному принципу с чётким разделением:

core/          - Ядро приложения (аудио, LLM, STT)
├── audio_capture.py    - Захват аудио (микрофон/системный звук)
├── llm_engine.py       - Движок LLM (на основе llama.cpp)
├── transcriber.py      - Speech-to-Text (на основе Whisper)
├── vad_detector.py     - Детектор речи (VAD)
└── config.py           - Конфигурация

threads/       - Потоки выполнения
├── audio_thread.py     - Поток аудио захвата
├── llm_thread.py       - Поток генерации ответов
├── stt_thread.py       - Поток транскрибации

ui/            - Пользовательский интерфейс
├── main_window.py      - Главное окно
├── settings_dialog.py  - Диалог настроек
├── model_downloader.py - Загрузчик моделей
└── ...                 - Другие компоненты UI

utils/         - Вспомогательные утилиты
├── history_manager.py     - Управление историей
├── statistics_manager.py  - Сбор статистики
├── question_detector.py   - Детектор вопросов
└── ...                    - Другие утилиты

models/        - Модели (не включены в репозиторий)
resources/     - Ресурсы (иконки, стили)

Технологии

  • Python 3.12+
  • PyQt6 графический интерфейс
  • Whisper распознавание речи
  • llama.cpp выполнение LLM моделей
  • Qwen2.5-3B-Instruct модель ИИ (3B параметров, GGUF квантованная)
  • webrtcvad детектор активности голоса
  • qdarktheme тёмная тема (опционально)

Требования

  • Windows 10/11 (основная платформа)
  • Python 3.12 или выше
  • RAM: минимум 4 ГБ (рекомендуется 8+ ГБ)
  • Свободное место: ~2.5 ГБ для модели

Скачивание

  • Можно установить в режиме разработчика (клонировав репо)
  • Доступна также сборка для Windows (установщик .exe).

Установка для разработчиков

  1. Клонируйте репозиторий:
git clone https://github.com/yourusername/ai-assistant.git
cd ai-assistant
  1. Установите зависимости:
pip install -r requirements.txt
  1. Загрузите модель:
  • Запустите приложение
  • Перейдите в Настройки → Модель → Скачать модель
  • Или вручную скачайте qwen2.5-3b-instruct-q4_k_m.gguf в папку %LOCALAPPDATA%\AI Assistant\models\

Использование

  1. Запустите приложение:
python main.py
  1. Настройте параметры:
  • Выберите режим работы
  • Настройте аудиоустройство
  • Укажите путь к модели (если не скачана автоматически)
  1. Начните работу:
  • В режиме "Авто" приложение будет автоматически отвечать на вопросы
  • В режиме "Прослушивание" только транскрибировать речь
  • В режиме "Ручной" вводить вопросы вручную

Установка для пользователей

  • Скачайте AIAssistant_Setup.exe (архив .zip в разделе release) из раздела релизов
  • Запустите установщик и следуйте инструкциям
  • Запустите AI Assistant
  • Дождитесь автоматической загрузки моделей (~2-3 ГБ, однократно)
  • Начните пользоваться. Если что-то не так, сообщите мне.

Настройки

Приложение поддерживает гибкую настройку через интерфейс:

  • Общие: режим, горячие клавиши, автозапуск
  • Модель: путь к файлу, параметры генерации
  • Генерация: температура, длина ответа, стоп-секвенсы
  • Интерфейс: тема, прозрачность, размер окна
  • Аудио: устройство, уровень чувствительности, VAD
  • Трей: поведение в системном трее

Горячие клавиши

  • Ctrl+Space переключение режима прослушивания
  • Ctrl+Enter отправить вопрос (в ручном режиме)
  • Ctrl+Shift+Q быстрый ввод вопроса
  • Ctrl+Shift+S показать статистику
  • Ctrl+Shift+H просмотр истории

Разработка

Запуск в режиме разработки

python main.py

Добавление новой модели

  1. Поместите GGUF файл в папку моделей
  2. Обновите HF_REPO_ID, HF_FILENAME в core/config.py
  3. При необходимости измените n_gpu_layers для использования GPU

Возможные проблемы и способы их решения

1. Ошибка загрузки torch DLL при запуске собранного приложения

Симптомы:

  • OSError: [WinError 1114] Произошел сбой в программе инициализации библиотеки динамической компоновки (DLL).
  • Error loading "...\torch\lib\c10.dll" or one of its dependencies.

Решение:

  • Убедитесь, что установлены Visual C++ Redistributables:
  • Если используете сборку через PyInstaller, проверьте build.spec:
    # Добавьте в hiddenimports:
    hiddenimports=['torch', 'torch._C']
  • Альтернативное решение используйте версию приложения для запуска из исходников:
    python main.py

2. Проблемы с микрофоном

  • Проверьте права доступа к микрофону в настройках Windows:
    Параметры → Конфиденциальность → Микрофон

3. Медленная работа

  • Убедитесь, что доступно минимум 8 ГБ свободной оперативной памяти.

4. Модель не загружается

Проверьте наличие:

  • Свободного места на диске (рекомендуется не менее 3 ГБ)
  • Стабильного интернет-соединения

5. Программа не закрывается полностью

Если приложение продолжает висеть в диспетчере задач после закрытия:

  1. Откройте Диспетчер задач (Ctrl+Shift+Esc)
  2. Найдите процесс AIAssistant.exe или Python.exe
  3. Нажмите "Снять задачу"

Планы развития

Оптимизация производительности

  • Улучшение работы модуля Whisper для более быстрой транскрипции
  • Оптимизация захвата и обработки аудио
  • Снижение использования оперативной памяти

Расширение функциональности

  • Поддержка дополнительных языков
  • Интеграция с календарями и системами видеоконференций
  • Экспорт истории в различные форматы

Улучшение нейронной сети

  • Поддержка более крупных и точных моделей
  • Возможность использования GPU для ускорения генерации
  • Тонкая настройка моделей под специфические задачи

Кроссплатформенность

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

Демонстрация

Пример работы

Пример работы

Главное окно

Главное окно

Лицензия

MIT License

About

Десктопное приложение для автоматического распознавания вопросов и предоставления ответов с использованием локальных LLM моделей. Поддерживает несколько языков, транскрипцию речи и автоответы на вопросы. Разработано на Python с использованием PyQt6.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages