Files
Medical_Input_Helper/readme.md
T
2025-11-01 21:39:19 +05:00

212 lines
9.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Medical Input Helper 🏥
Умное приложение для автоматизации ввода медицинских текстов с поддержкой AI. Панель автоматически появляется при клике на поля ввода в любых приложениях (браузеры, текстовые редакторы, EHR системы).
![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)
![PyQt6](https://img.shields.io/badge/PyQt6-GUI-green.svg)
![AI](https://img.shields.io/badge/AI-LLM_Integrated-orange.svg)
## ✨ Возможности
### 🤖 Интеллектуальная обработка текста
- **Автоматическое определение полей ввода** в любых приложениях
- **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": "Развернутое медицинское описание с профессиональной терминологией"
}
```