Medical Transcription LLM Corrector
Модуль для автоматической коррекции медицинских транскрипций с использованием OpenRouter API и генерации отчетов в формате DOCX.
Возможности
- ✅ LLM коррекция - исправление ошибок через OpenRouter (Gemini, GPT, Claude и др.)
- ✅ База знаний - использование медицинских терминов для контекста
- ✅ Генерация DOCX - автоматическое создание форматированных отчетов
- ✅ Batch обработка - автоматическая обработка всех результатов
- ✅ Детальная статистика - отчеты об изменениях и исправлениях
Установка
1. Установка зависимостей
cd /home/robot/Documents/novaya_vetka/Trans_for_doctors
pip install -r requirements.txt
2. Настройка API ключа
Скопируйте файл .env.example в .env:
cd corrector
cp .env.example .env
Отредактируйте .env и добавьте ваш OpenRouter API ключ:
OPENROUTER_API_KEY=your-openrouter-api-key-here
Получить ключ: https://openrouter.ai/keys
Использование
Автоматическая обработка с генерацией отчетов (по умолчанию)
Обработать все файлы из папки results/ и создать DOCX отчеты:
cd /home/robot/Documents/novaya_vetka/Trans_for_doctors
python -m corrector.auto_process
Отчеты будут сохранены в results/reports/ в формате report_YYYYMMDD_HHMMSS.docx
С указанием данных пациента
python -m corrector.auto_process \
--patient-name "Стрельникова Анна Владимировна" \
--patient-dob "16.02.1996" \
--study-area "Поясничный отдел позвоночника + копчик" \
--doctor-name "Камалетдинов Э.А"
Только коррекция без генерации отчетов
JSON файлы коррекции
python -m corrector.auto_process --no-reports
Обработка конкретного файла
python -m corrector.auto_process --file results/result_20260114_200537.json
Использование другой модели
python -m corrector.auto_process --model gpt-4o-mini
Формат выходных данных
Для каждого файла result_YYYYMMDD_HHMMSS.json создается файл result_YYYYMMDD_HHMMSS_corrected.json со следующей структурой:
{
"original_file": "result_20260114_200537.json",
"processing_timestamp": "2026-01-15T10:30:00.123456",
"llm_model": "gpt-4o",
"transcription_original": "исходная транскрипция...",
"transcription_corrected": "исправленная транскрипция...",
"corrections_applied": 5,
"corrections_detail": [
{
"type": "replace",
"original": "дарзальная",
"corrected": "дорзальная",
"position": 15
}
]
### DOCX отчеты
### Коррекция транскрипции
```python
from corrector import MedicalLLMCorrector
# Инициализация
corrector = MedicalLLMCorrector()
# Коррекция текста
original_text = "На серии МР-томограмм определяется дарзальная грыжа..."
corrected_text, corrections = corrector.correct_transcription(original_text)
print(f"Исправлено ошибок: {len(corrections)}")
print(f"Исправленный текст: {corrected_text}")
# Форматированный отчет
report = corrector.format_corrections_report(corrections)
print(report)
Генерация DOCX отчета
from pathlib import Path
from corrector.report_generator import generate_report_from_json
# Генерация отчета из corrected JSON
report_path = generate_report_from_json(
corrected_json_path=Path("results/result_20260114_200537_corrected.json"),
output_dir=Path("results/reports"),
patient_name="Стрельникова Анна Владимировна",
patient_dob="16.02.1996",
study_area="Поясничный отдел позвоночника + копчик",
doctor_name="Камалетдинов Э.А"
)
print(f"Отчет создан: {report_path}"
## Использование в коде
```python
from corrector import MedicalLLMCorrector
# Инициализация
corrector = MedicalLLMCorrector()
# Коррекция текста
original_text = "На серии МР-томограмм определяется дарзальная грыжа..."
corrected_text, corrections = corrector.correct_transcription(original_text)
print(f"Исправлено ошибок: {len(corrections)}")
print(f"Исправленный текст: {corrected_text}")
# Форматированный отчет
report = corrector.format_corrections_report(corrections)
print(report)
Настройки
Все настройки находятся в файле .env:
OPENROUTER_API_KEY- API ключ OpenRouter (обязательно)OPENROUTER_MODEL- модель для использования (по умолчанию:google/gemini-3-flash-preview)OPENROUTER_TEMPERATURE- температура генерации (по умолчанию:0.1)OPENROUTER_MAX_TOKENS- максимальное количество токенов (по умолчанию:4000)SAVE_DIFF- сохранять детали изменений (по умолчанию:true)LOG_CORRECTIONS- выводить изменения в лог (по умолчанию:true)MAX_RETRIES- количество попыток при ошибке API (по умолчанию:3)RETRY_DELAY- задержка между попытками (по умолчанию:2)
CLI Аргументы
--file- обработать конкретный файл--results-dir- путь к папке results--model- модель OpenAI (gpt-4o, gpt-4o-mini)--generate-reports- генерировать DOCX (по умолчанию: включено)--no-reports- отключить генерацию DOCX--reports-dir- папка для DOCX отчетов--patient-name- ФИО пациента--patient-dob- дата рождения (ДД.ММ.ГГГГ)--study-area- область исследования--doctor-name- имя врача
База знаний
Медицинские термины загружаются из файла medical_terms.txt в корне проекта. Для добавления новых терминов просто отредактируйте этот файл.
Логи
Все операции логируются в консоль с подробной информацией о:
- Обрабатываемых файлах
- Количестве найденных исправлений
- Конкретных изменениях (если включено
LOG_CORRECTIONS) - Ошибках API
Примечания
- Модуль автоматически пропускает уже обработанные файлы (с суффиксом
_corrected) - При ошибках API используется retry логика с экспоненциальной задержкой
- Исходные файлы не изменяются, создаются новые
*_corrected.json