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.
|
|
2 days ago | |
|---|---|---|
| scripts | 2 days ago | |
| .gitignore | 2 days ago | |
| ai_worker.py | 2 days ago | |
| drag_drop_handler.py | 2 days ago | |
| icon_window.py | 2 days ago | |
| main.py | 2 days ago | |
| main_interface.py | 2 days ago | |
| main_window.py | 2 days ago | |
| rag_corpus.json | 2 days ago | |
| readme.md | 2 days ago | |
| Техническое Задание.md | 2 days ago | |
readme.md
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+ свободного места на диске для моделей
Установка зависимостей
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 модели
-
Перейдите на HuggingFace:
-
Выберите версию модели:
- Для слабых компьютеров:
YandexGPT-5-Lite-8B-instruct-Q4_K_M.gguf(~4.8GB) - Для мощных компьютеров:
YandexGPT-5-Lite-8B-instruct-Q8_0.gguf(~8.5GB)
- Для слабых компьютеров:
-
Скачайте модель:
# Создайте папку для моделей 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 -
Альтернативные способы скачивания:
- Используйте
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
🤝 Разработка
Добавление новых функций
- Создайте новую кнопку в
main_interface.py - Добавьте обработчик в
main_window.py - Реализуйте логику в
ai_worker.pyпри необходимости
Расширение медицинского корпуса
Добавьте новые примеры в rag_corpus.json:
{
"short": "новые симптомы",
"full": "Развернутое медицинское описание с профессиональной терминологией"
}