You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Максим Чистогов 761d1d98e0 readme 2 days ago
scripts first commit 2 days ago
.gitignore 1 2 days ago
ai_worker.py first commit 2 days ago
drag_drop_handler.py first commit 2 days ago
icon_window.py first commit 2 days ago
main.py first commit 2 days ago
main_interface.py first commit 2 days ago
main_window.py first commit 2 days ago
rag_corpus.json first commit 2 days ago
readme.md readme 2 days ago
Техническое Задание.md readme 2 days ago

readme.md

Medical Input Helper 🏥

Умное приложение для автоматизации ввода медицинских текстов с поддержкой AI. Панель автоматически появляется при клике на поля ввода в любых приложениях (браузеры, текстовые редакторы, EHR системы).

Python PyQt6 AI

Возможности

🤖 Интеллектуальная обработка текста

  • Автоматическое определение полей ввода в любых приложениях
  • AI-обработка медицинских текстов с использованием LLM
  • Поддержка русского языка и медицинской терминологии
  • Автоматическое форматирование жалоб и анамнеза

🖱 Удобный интерфейс

  • Плавающая панель с автоматическим появлением
  • Drag-and-drop для текста и изображений
  • Системный трей для фоновой работы
  • Перетаскиваемые окна для удобного позиционирования

🏥 Медицинские функции

  • Обработка жалоб пациента с AI-анализом
  • Форматирование анамнеза заболевания
  • Подготовка ЛОР-статуса
  • Генерация медицинских заключений

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

medical-input-helper/
├── 📁 models/                 # Папка для AI моделей
│   └── .gitkeep              # Пустой файл для сохранения структуры
├── 📁 data/                  # Папка для пользовательских данных
│   └── .gitkeep              # Пустой файл для сохранения структуры
├── 📁 chroma_db/             # База данных векторных эмбеддингов
│   └── .gitkeep              # Пустой файл для сохранения структуры
├── 📄 main.py                # Точка входа приложения
├── 📄 main_window.py         # Главное окно и основная логика
├── 📄 main_interface.py      # Пользовательский интерфейс
├── 📄 ai_worker.py           # Обработка AI (LLM + RAG)
├── 📄 drag_drop_handler.py   # Обработка drag-and-drop
├── 📄 icon_window.py         # Плавающая иконка приложения
├── 📄 rag_corpus.json        # Медицинский корпус для RAG
├── 📄 requirements.txt       # Зависимости проекта
└── 📄 README.md              # Документация

🚀 Установка

Требования

  • Python 3.8 или выше
  • 4GB+ оперативной памяти (8GB+ рекомендуется для LLM)
  • 2GB+ свободного места на диске для моделей

Установка зависимостей

pip install -r requirements.txt

Или вручную:

pip install PyQt6 qtawesome uiautomation pyperclip keyboard chromadb llama-cpp-python torch tiktoken psutil pillow requests

📥 Установка AI модели

Скачивание YandexGPT-5-Lite модели

  1. Перейдите на HuggingFace:

  2. Выберите версию модели:

    • Для слабых компьютеров: YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf (~4.8GB)
    • Для мощных компьютеров: YandexGPT-5-Lite-8B-instruct-Q8_0.gguf (~8.5GB)
  3. Скачайте модель:

    # Создайте папку для моделей
    mkdir models
    
    # Скачайте через wget (Linux/Mac)
    wget -O models/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf https://huggingface.co/yandex/YandexGPT-5-Lite-8B-instruct-GGUF/resolve/main/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf
    
    # Или через curl (Windows)
    curl -L -o models/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf https://huggingface.co/yandex/YandexGPT-5-Lite-8B-instruct-GGUF/resolve/main/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf
    
  4. Альтернативные способы скачивания:

    • Используйте git lfs если установлен
    • Скачайте вручную через браузер и переместите в папку models/

Настройка медицинского корпуса

Создайте файл rag_corpus.json с примерами медицинских текстов:

[
  {
    "short": "кашель температура",
    "full": "Пациент предъявляет жалобы на сухой кашель, повышение температуры тела до 38°C, общую слабость"
  },
  {
    "short": "боль горло", 
    "full": "Больной жалуется на острую боль в горле, усиливающуюся при глотании, першение"
  }
]

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

Основные сценарии

1. Автоматическая работа

  • Кликните на любое поле ввода в браузере или приложении
  • Панель автоматически появится рядом с курсором
  • Выберите нужную функцию для вставки текста

2. Обработка жалоб пациента

  • Нажмите "Копировать жалобы" для захвата текста из активного поля
  • AI автоматически обработает и отформатирует текст
  • Нажмите "Вставить жалобы (ИИ)" для вставки результата

3. Drag-and-drop

  • Перетащите текст или изображение на панель
  • Система автоматически определит тип контента
  • Выберите нужный формат для вставки

4. Работа с изображениями

  • Перетащите медицинские снимки на папку data/ или прямо в приложение
  • AI сгенерирует описание и заключение
  • Вставьте готовый текст в нужное поле

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

  • Двойной клик по иконке в трее - показать/скрыть панель
  • Перетаскивание окон - удерживайте левую кнопку мыши

🏗 Архитектура

AI система

  • MedicalRAG - Retrieval-Augmented Generation для медицинских текстов
  • ChromaDB - векторная база в папке chroma_db/
  • Sentence Transformers - эмбеддинги на русском языке
  • LLM модели - хранятся в папке models/

Потоки данных

Пользовательский ввод → Drag&Drop/Копирование → AI Worker → LLM модель → Форматированный вывод

Настройка

Конфигурация путей

В ai_worker.py настройте пути к данным:

model_path = "./models/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf"
corpus_path = "rag_corpus.json" 
db_path = "./chroma_db"
data_path = "./data"

Создание структуры папок

# Автоматическое создание структуры
mkdir -p models data chroma_db

# Создание пустых файлов для git
touch models/.gitkeep data/.gitkeep chroma_db/.gitkeep

🐛 Устранение неполадок

Проблемы с моделями

# Проверьте наличие модели
ls -la models/

# Проверьте размер файла (должен быть ~4.8GB для Q4)
ls -lh models/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf

Проблемы с памятью

  • Используйте Q4 версию модели для экономии памяти
  • Закройте лишние приложения перед запуском
  • Увеличьте файл подкачки если нужно

Проблемы с зависимостями

# Обновите pip и переустановите зависимости
pip install --upgrade pip
pip install -r requirements.txt --force-reinstall

🤝 Разработка

Добавление новых функций

  1. Создайте новую кнопку в main_interface.py
  2. Добавьте обработчик в main_window.py
  3. Реализуйте логику в ai_worker.py при необходимости

Расширение медицинского корпуса

Добавьте новые примеры в rag_corpus.json:

{
  "short": "новые симптомы",
  "full": "Развернутое медицинское описание с профессиональной терминологией"
}