212 lines
9.6 KiB
Markdown
212 lines
9.6 KiB
Markdown
# Medical Input Helper 🏥
|
||
|
||
Умное приложение для автоматизации ввода медицинских текстов с поддержкой AI. Панель автоматически появляется при клике на поля ввода в любых приложениях (браузеры, текстовые редакторы, EHR системы).
|
||
|
||

|
||

|
||

|
||
|
||
## ✨ Возможности
|
||
|
||
### 🤖 Интеллектуальная обработка текста
|
||
- **Автоматическое определение полей ввода** в любых приложениях
|
||
- **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+ свободного места на диске для моделей
|
||
|
||
### Установка зависимостей
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
Или вручную:
|
||
```bash
|
||
pip install PyQt6 qtawesome uiautomation pyperclip keyboard chromadb llama-cpp-python torch tiktoken psutil pillow requests
|
||
```
|
||
|
||
### 📥 Установка AI модели
|
||
|
||
#### Скачивание YandexGPT-5-Lite модели
|
||
|
||
1. **Перейдите на HuggingFace**:
|
||
- Откройте: https://huggingface.co/yandex/YandexGPT-5-Lite-8B-instruct-GGUF/tree/main
|
||
|
||
2. **Выберите версию модели**:
|
||
- Для слабых компьютеров: `YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf` (~4.8GB)
|
||
- Для мощных компьютеров: `YandexGPT-5-Lite-8B-instruct-Q8_0.gguf` (~8.5GB)
|
||
|
||
3. **Скачайте модель**:
|
||
```bash
|
||
# Создайте папку для моделей
|
||
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` с примерами медицинских текстов:
|
||
|
||
```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` настройте пути к данным:
|
||
|
||
```python
|
||
model_path = "./models/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf"
|
||
corpus_path = "rag_corpus.json"
|
||
db_path = "./chroma_db"
|
||
data_path = "./data"
|
||
```
|
||
|
||
### Создание структуры папок
|
||
```bash
|
||
# Автоматическое создание структуры
|
||
mkdir -p models data chroma_db
|
||
|
||
# Создание пустых файлов для git
|
||
touch models/.gitkeep data/.gitkeep chroma_db/.gitkeep
|
||
```
|
||
|
||
## 🐛 Устранение неполадок
|
||
|
||
### Проблемы с моделями
|
||
```bash
|
||
# Проверьте наличие модели
|
||
ls -la models/
|
||
|
||
# Проверьте размер файла (должен быть ~4.8GB для Q4)
|
||
ls -lh models/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf
|
||
```
|
||
|
||
### Проблемы с памятью
|
||
- Используйте Q4 версию модели для экономии памяти
|
||
- Закройте лишние приложения перед запуском
|
||
- Увеличьте файл подкачки если нужно
|
||
|
||
### Проблемы с зависимостями
|
||
```bash
|
||
# Обновите 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`:
|
||
|
||
```json
|
||
{
|
||
"short": "новые симптомы",
|
||
"full": "Развернутое медицинское описание с профессиональной терминологией"
|
||
}
|
||
```
|