Trans_for_doctors / MIGRATION_TO_OPENROUTER.md
Mintik24's picture
🎉 Полный рефакторинг проекта Medical Transcriber
e275025
# Удаление OpenAI - Переход на OpenRouter
## ✅ Выполненные изменения
Проект полностью переведён на использование OpenRouter API. Поддержка OpenAI удалена.
### Изменённые файлы
#### 1. `corrector/llm_corrector.py`
- ✅ Удалён импорт `from openai import OpenAI`
- ✅ Удалён импорт `time`
- ✅ Убран параметр `provider` из конструктора
- ✅ Удалена логика выбора провайдера
- ✅ Удалён метод `_call_openai()`
- ✅ Переименован `_call_openai_with_retry()` в `_call_api()`
- ✅ Упрощён конструктор - работает только с OpenRouter
#### 2. `corrector/config.py`
- ✅ Удалены все настройки OpenAI:
- `OPENAI_API_KEY`
- `OPENAI_MODEL`
- `OPENAI_TEMPERATURE`
- `OPENAI_MAX_TOKENS`
- ✅ Удалён параметр `LLM_PROVIDER`
- ✅ Остались только настройки OpenRouter
#### 3. `requirements.txt`
- ✅ Удалена зависимость `openai>=1.0.0`
- ✅ Остался только `requests>=2.31.0` для OpenRouter
#### 4. `corrector/.env.example`
- ✅ Удалены примеры настроек OpenAI
- ✅ Удалён параметр `LLM_PROVIDER`
- ✅ Остались только настройки OpenRouter
#### 5. `README.md` (главный)
- ✅ Обновлено описание возможностей
- ✅ Убраны упоминания о выборе провайдера
- ✅ Удалён параметр `--llm-provider`
- ✅ Убран параметр `--openai-key`
#### 6. `corrector/OPENROUTER.md`
- ✅ Убраны упоминания о `LLM_PROVIDER`
- ✅ Удалены примеры переключения провайдера
- ✅ Удалён раздел "Сравнение с OpenAI"
- ✅ Упрощена документация
#### 7. `CHANGELOG_OPENROUTER.md`
- ✅ Убраны упоминания о выборе провайдера
- ✅ Удалён раздел "Обратная совместимость"
- ✅ Удалены примеры с `provider="openrouter"`
- ✅ Убраны параметры `--llm-provider`
#### 8. `OPENROUTER_SUMMARY.md`
- ✅ Обновлено описание изменений
- ✅ Убраны упоминания о поддержке двух провайдеров
- ✅ Удалены примеры переключения
- ✅ Упрощён раздел "Быстрый старт"
#### 9. `corrector/README.md`
- ✅ Обновлено название (OpenRouter вместо OpenAI)
- ✅ Изменены примеры настройки API ключа
- ✅ Обновлён раздел "Настройки"
## 🔧 Новая структура
### Конфигурация (.env)
```bash
# OpenRouter API (единственный провайдер)
OPENROUTER_API_KEY=your-key-here
OPENROUTER_MODEL=google/gemini-3-flash-preview
OPENROUTER_TEMPERATURE=0.1
OPENROUTER_MAX_TOKENS=4000
# Общие настройки
CORRECTION_ENABLED=true
SAVE_DIFF=true
LOG_CORRECTIONS=true
MAX_RETRIES=3
RETRY_DELAY=2
```
### Использование
#### Python
```python
from corrector import MedicalLLMCorrector
from knowledge_base import MedicalTermManager
# Просто создаём корректор - он автоматически использует OpenRouter
term_manager = MedicalTermManager("medical_terms.txt")
corrector = MedicalLLMCorrector(term_manager=term_manager)
# Коррекция
corrected, changes = corrector.correct_transcription(text)
```
#### CLI
```bash
# Без указания провайдера - всегда OpenRouter
uv run transmed --audio test.wav --llm
```
#### Curl
```bash
export OPENROUTER_API_KEY="your-key"
./test_openrouter_curl.sh "Текст для обработки"
```
## 📦 Зависимости
### До изменений
```
openai>=1.0.0
python-dotenv>=1.0.0
requests>=2.31.0
```
### После изменений
```
python-dotenv>=1.0.0
requests>=2.31.0
```
## ✨ Преимущества
1. **Упрощение** - нет выбора провайдера, всё работает из коробки
2. **Меньше зависимостей** - не требуется библиотека openai
3. **Больше моделей** - доступ к Gemini, GPT, Claude, Llama и др.
4. **Reasoning mode** - поддержка для Gemini
5. **Гибкие цены** - выбор модели по бюджету
## 🎯 Миграция для пользователей
Если вы использовали OpenAI:
### Было
```bash
# .env
OPENAI_API_KEY=sk-...
LLM_PROVIDER=openai
```
```python
corrector = MedicalLLMCorrector(
term_manager=term_manager,
provider="openai"
)
```
### Стало
```bash
# .env
OPENROUTER_API_KEY=your-key
```
```python
corrector = MedicalLLMCorrector(term_manager=term_manager)
```
### Шаги миграции
1. Получите ключ OpenRouter: https://openrouter.ai/keys
2. Замените в `.env`:
```bash
# Удалите
OPENAI_API_KEY=sk-...
LLM_PROVIDER=openai
# Добавьте
OPENROUTER_API_KEY=your-openrouter-key
```
3. Обновите код (уберите параметр `provider`)
4. Всё работает!
## 🚀 Доступные модели через OpenRouter
- **Google Gemini** - `google/gemini-3-flash-preview` (рекомендуется)
- **OpenAI GPT** - `openai/gpt-4o`, `openai/gpt-3.5-turbo`
- **Anthropic Claude** - `anthropic/claude-3.5-sonnet`
- **Meta Llama** - `meta-llama/llama-3.1-405b-instruct`
- **Mistral** - `mistralai/mixtral-8x22b-instruct`
- И многие другие!
Полный список: https://openrouter.ai/models
## 📚 Документация
- [Главный README](README.md)
- [OpenRouter документация](corrector/OPENROUTER.md)
- [Примеры Curl](CURL_EXAMPLES.md)
- [Changelog](CHANGELOG_OPENROUTER.md)
- [Summary](OPENROUTER_SUMMARY.md)
## ✅ Итог
Проект полностью переведён на OpenRouter API. OpenAI больше не поддерживается.
Это упрощает код, уменьшает зависимости и даёт доступ к большему количеству моделей!