This commit is contained in:
2025-11-01 21:39:19 +05:00
parent c29dc830c8
commit 761d1d98e0
2 changed files with 435 additions and 3 deletions
+174 -3
View File
@@ -2,7 +2,7 @@
Умное приложение для автоматизации ввода медицинских текстов с поддержкой AI. Панель автоматически появляется при клике на поля ввода в любых приложениях (браузеры, текстовые редакторы, EHR системы).
![Python](https://img.shields.io/badge/Python-3.12+-blue.svg)
![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)
@@ -26,15 +26,186 @@
- **Подготовка ЛОР-статуса**
- **Генерация медицинских заключений**
## 📁 Структура проекта
```
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
```
### Модель
[YandexGPT-5-Lite-8B-instruct-Q4_K_M](https://huggingface.co/yandex/YandexGPT-5-Lite-8B-instruct-GGUF/resolve/main/YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf?download=true)
### 📥 Установка 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": "Развернутое медицинское описание с профессиональной терминологией"
}
```