288 lines
11 KiB
Markdown
288 lines
11 KiB
Markdown
|
|
# 🌐 Ollama Translator - Русский переводчик
|
|||
|
|
|
|||
|
|
Uncensored модель-переводчик на русский язык на базе Qwen3-14B-abliterated с современным графическим интерфейсом.
|
|||
|
|
|
|||
|
|

|
|||
|
|

|
|||
|
|

|
|||
|
|
|
|||
|
|
## 📋 Содержание
|
|||
|
|
|
|||
|
|
- [Возможности](#-возможности)
|
|||
|
|
- [Установка](#-установка)
|
|||
|
|
- [Использование](#-использование)
|
|||
|
|
- [GUI Приложение](#-gui-приложение)
|
|||
|
|
- [CLI Использование](#-cli-использование)
|
|||
|
|
- [Файлы проекта](#-файлы-проекта)
|
|||
|
|
- [Технические детали](#-технические-детали)
|
|||
|
|
|
|||
|
|
## ✨ Возможности
|
|||
|
|
|
|||
|
|
### 🎯 Основные функции
|
|||
|
|
- ✅ **Uncensored перевод** - без цензуры контента
|
|||
|
|
- ✅ **Автоопределение языка** - работает с любым языком
|
|||
|
|
- ✅ **Только русский вывод** - специализированная модель
|
|||
|
|
- ✅ **Высокая точность** - на базе Qwen3-14B (Q6_K квантизация)
|
|||
|
|
- ✅ **Графический интерфейс** - современное GUI приложение
|
|||
|
|
- ✅ **CLI инструменты** - для автоматизации и скриптов
|
|||
|
|
|
|||
|
|
### 🖥️ GUI Приложение
|
|||
|
|
- 🎨 **Современный интерфейс** - CustomTkinter с темной/светлой темой
|
|||
|
|
- 📁 **Открытие файлов** - через диалог (Ctrl+O)
|
|||
|
|
- ⌨️ **Горячие клавиши** - быстрая работа
|
|||
|
|
- 📊 **Счетчики** - символы и слова
|
|||
|
|
- ⏳ **Индикатор прогресса** - визуальная обратная связь
|
|||
|
|
- 💾 **Работа с файлами** - открытие и сохранение
|
|||
|
|
- 📋 **Копирование/Вставка** - работа с буфером обмена
|
|||
|
|
|
|||
|
|
## 📦 Установка
|
|||
|
|
|
|||
|
|
### Требования
|
|||
|
|
- Python 3.8 или выше
|
|||
|
|
- Ollama
|
|||
|
|
- CustomTkinter (для GUI)
|
|||
|
|
|
|||
|
|
### Шаг 1: Установка Ollama
|
|||
|
|
Скачайте и установите Ollama с [официального сайта](https://ollama.ai)
|
|||
|
|
|
|||
|
|
### Шаг 2: Установка модели
|
|||
|
|
```bash
|
|||
|
|
cd C:\Users\dimir\proects\ollama-translate-model
|
|||
|
|
ollama create translator -f Modelfile
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Шаг 3: Установка зависимостей Python
|
|||
|
|
```bash
|
|||
|
|
pip install -r requirements.txt
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Проверка установки
|
|||
|
|
```bash
|
|||
|
|
ollama list | grep translator
|
|||
|
|
python --version
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🚀 Использование
|
|||
|
|
|
|||
|
|
### GUI Приложение (рекомендуется)
|
|||
|
|
|
|||
|
|
**Windows:**
|
|||
|
|
```bash
|
|||
|
|
run_gui.bat
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Linux/Mac:**
|
|||
|
|
```bash
|
|||
|
|
python translator_gui.py
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Основные действия:**
|
|||
|
|
1. Введите текст или перетащите файл
|
|||
|
|
2. Нажмите `F5` или кнопку "Перевести"
|
|||
|
|
3. Скопируйте или сохраните результат
|
|||
|
|
|
|||
|
|
**Горячие клавиши:**
|
|||
|
|
- `Ctrl+O` - Открыть файл
|
|||
|
|
- `Ctrl+V` - Вставить текст
|
|||
|
|
- `Ctrl+S` - Сохранить перевод
|
|||
|
|
- `F5` или `Ctrl+Enter` - Перевести
|
|||
|
|
|
|||
|
|
### CLI Использование
|
|||
|
|
|
|||
|
|
**Python скрипт:**
|
|||
|
|
```bash
|
|||
|
|
python translate.py "Hello world"
|
|||
|
|
# Вывод: Привет, мир!
|
|||
|
|
|
|||
|
|
python translate.py "Good morning"
|
|||
|
|
# Вывод: Доброе утро
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Прямой вызов Ollama:**
|
|||
|
|
```bash
|
|||
|
|
ollama run translator "Hello world"
|
|||
|
|
# Вывод будет содержать теги <think>
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Batch файл (Windows):**
|
|||
|
|
```bash
|
|||
|
|
translate.bat "Hello world"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🖥️ GUI Приложение
|
|||
|
|
|
|||
|
|
### Скриншот интерфейса
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────────────────────────────────┐
|
|||
|
|
│ 🌐 Ollama Translator 🌙 Темная тема│
|
|||
|
|
├─────────────────────────────────────────────────────────────┤
|
|||
|
|
│ 📝 Исходный текст │ 🇷🇺 Перевод на русский │
|
|||
|
|
│ ┌─────────────────────────┐│┌─────────────────────────────┐│
|
|||
|
|
│ │ Hello world │││ Привет, мир! ││
|
|||
|
|
│ └─────────────────────────┘│└─────────────────────────────┘│
|
|||
|
|
│ Символов: 11 | Слов: 2 │ Символов: 12 | Слов: 2 │
|
|||
|
|
│ │
|
|||
|
|
│ 📁 Открыть 📋 Вставить 🗑️ Очистить │
|
|||
|
|
│ 🔄 Перевести │
|
|||
|
|
│ 📄 Копировать 💾 Сохранить │
|
|||
|
|
│ ✅ Готов к работе [████████] │
|
|||
|
|
└─────────────────────────────────────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Функции GUI
|
|||
|
|
- **Drag & Drop** - перетаскивание файлов в окно
|
|||
|
|
- **Копирование/Вставка** - работа с буфером обмена
|
|||
|
|
- **Открытие файлов** - поддержка .txt, .md и других форматов
|
|||
|
|
- **Сохранение** - экспорт с выбором имени и пути
|
|||
|
|
- **Темы** - переключение между темной и светлой
|
|||
|
|
- **Счетчики** - отображение символов и слов
|
|||
|
|
- **Прогресс** - индикатор выполнения перевода
|
|||
|
|
- **Статус-бар** - информация о текущих операциях
|
|||
|
|
|
|||
|
|
Подробнее см. [GUI_README.md](GUI_README.md)
|
|||
|
|
|
|||
|
|
## 📁 Файлы проекта
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
ollama-translate-model/
|
|||
|
|
├── translator_gui.py # GUI приложение (главное)
|
|||
|
|
├── translator_utils.py # Утилиты (история, batch, настройки)
|
|||
|
|
├── translate.py # CLI скрипт для перевода
|
|||
|
|
├── translate.sh # Bash скрипт (Linux/Mac)
|
|||
|
|
├── translate.bat # Batch файл (Windows)
|
|||
|
|
├── run_gui.bat # Запуск GUI для Windows
|
|||
|
|
├── Modelfile # Конфигурация модели Ollama
|
|||
|
|
├── requirements.txt # Зависимости Python
|
|||
|
|
├── README.md # Этот файл
|
|||
|
|
├── GUI_README.md # Подробная документация GUI
|
|||
|
|
└── QUICKSTART.md # Быстрый старт
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔧 Технические детали
|
|||
|
|
|
|||
|
|
### Модель
|
|||
|
|
- **Базовая модель:** `hf.co/bartowski/huihui-ai_Qwen3-14B-abliterated-GGUF:Q6_K`
|
|||
|
|
- **Имя в Ollama:** `translator`
|
|||
|
|
- **Размер:** ~12 GB
|
|||
|
|
- **Квантизация:** Q6_K (баланс качества и размера)
|
|||
|
|
- **Особенность:** Abliterated (uncensored)
|
|||
|
|
|
|||
|
|
### Параметры модели
|
|||
|
|
```
|
|||
|
|
Temperature: 0.1 # Низкая для точности
|
|||
|
|
Top P: 0.9
|
|||
|
|
Top K: 40
|
|||
|
|
Repeat Penalty: 1.1
|
|||
|
|
Context Window: 8192 токенов
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Системный промпт
|
|||
|
|
```
|
|||
|
|
You are a direct translator. Translate input to Russian
|
|||
|
|
immediately without any thinking process or tags.
|
|||
|
|
Just output the Russian translation.
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Фильтрация вывода
|
|||
|
|
Модель показывает процесс мышления в тегах `<think>...</think>`.
|
|||
|
|
Python скрипты автоматически фильтруют эти теги с помощью регулярных выражений.
|
|||
|
|
|
|||
|
|
### Архитектура GUI
|
|||
|
|
- **Фреймворк:** CustomTkinter (современный tkinter)
|
|||
|
|
- **Многопоточность:** Перевод в отдельном потоке
|
|||
|
|
- **Кодировки:** Автоопределение UTF-8, CP1251, Latin-1
|
|||
|
|
- **Таймаут:** 120 секунд для длинных текстов
|
|||
|
|
|
|||
|
|
## 💡 Примеры использования
|
|||
|
|
|
|||
|
|
### Перевод с английского
|
|||
|
|
```python
|
|||
|
|
python translate.py "Hello, how are you today?"
|
|||
|
|
# Привет, как у тебя дела сегодня?
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Перевод с китайского
|
|||
|
|
```python
|
|||
|
|
python translate.py "你好世界"
|
|||
|
|
# Привет мир
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Перевод технического текста
|
|||
|
|
```python
|
|||
|
|
python translate.py "The API endpoint returns a JSON response"
|
|||
|
|
# Конечная точка API возвращает ответ в формате JSON
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Перевод файла
|
|||
|
|
```python
|
|||
|
|
# Через GUI: Ctrl+O -> выбрать файл -> F5 -> Ctrl+S
|
|||
|
|
# Через CLI:
|
|||
|
|
python translate.py "$(cat input.txt)" > output.txt
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 🔮 Планы развития
|
|||
|
|
|
|||
|
|
### В разработке
|
|||
|
|
- [ ] История переводов с поиском
|
|||
|
|
- [ ] Batch обработка нескольких файлов
|
|||
|
|
- [ ] Экспорт в PDF, DOCX, HTML
|
|||
|
|
- [ ] Настройки модели (температура, top_p)
|
|||
|
|
- [ ] Сравнение переводов
|
|||
|
|
- [ ] Автосохранение
|
|||
|
|
- [ ] Статистика использования
|
|||
|
|
- [ ] Плагины и расширения
|
|||
|
|
|
|||
|
|
### Идеи для улучшения
|
|||
|
|
- [ ] Обратный перевод для проверки качества
|
|||
|
|
- [ ] Голосовой ввод и вывод
|
|||
|
|
- [ ] OCR для изображений
|
|||
|
|
- [ ] Интеграция с браузером
|
|||
|
|
- [ ] API сервер
|
|||
|
|
- [ ] Мобильное приложение
|
|||
|
|
|
|||
|
|
## 🐛 Решение проблем
|
|||
|
|
|
|||
|
|
### Модель не найдена
|
|||
|
|
```bash
|
|||
|
|
ollama list
|
|||
|
|
ollama create translator -f Modelfile
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### GUI не запускается
|
|||
|
|
```bash
|
|||
|
|
pip install --upgrade customtkinter
|
|||
|
|
python --version # Должна быть 3.8+
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Проблемы с кодировкой
|
|||
|
|
Приложение автоматически пробует несколько кодировок.
|
|||
|
|
Если не помогает, конвертируйте файл в UTF-8.
|
|||
|
|
|
|||
|
|
### Ollama не найден
|
|||
|
|
Убедитесь, что Ollama установлен и добавлен в PATH:
|
|||
|
|
```bash
|
|||
|
|
ollama --version
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📝 Лицензия
|
|||
|
|
|
|||
|
|
MIT License - свободное использование и модификация
|
|||
|
|
|
|||
|
|
## 👨💻 Автор
|
|||
|
|
|
|||
|
|
Создано с помощью Claude Code (Opus 4.8)
|
|||
|
|
|
|||
|
|
## 🤝 Вклад
|
|||
|
|
|
|||
|
|
Предложения и улучшения приветствуются!
|
|||
|
|
|
|||
|
|
## 📚 Дополнительная документация
|
|||
|
|
|
|||
|
|
- [GUI_README.md](GUI_README.md) - Подробная документация GUI
|
|||
|
|
- [QUICKSTART.md](QUICKSTART.md) - Быстрый старт
|
|||
|
|
- [translator_utils.py](translator_utils.py) - Утилиты и API
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**Приятного использования! 🚀**
|