- Восстановление результата из кеша поверх существующих файлов без ручного удаления (например, режим
--restore-cache). - Отдельный кеш переводчика для всех движков: единый файл
resources/cache/translator_cache.json(или по api), ключsha256(to_translate + api + source + target + model + значимые опции + версия алгоритма), запись хранитtextиmeta(model, prompts, smart_split_settings, created_at). При сборке пробуем восстановить все сегменты из translator cache, переводим только отсутствующие и дозаписываем; инвалидация по версии алгоритма/модели/промптов, опционально лимит размера и очистка старых записей.
- Исправлено обрезание перевода при восстановлении строк: оставшиеся слова дописываются в последнюю строку.
- Добавлен тест на восстановление текста по примеру из кеша агента.
- В очистке строк добавлена замена неразрывного дефиса на обычный ASCII-дефис.
- Умное объединение реплик ограничено по числу строк, длине текста и таймингам, чтобы не склеивать весь файл при отсутствии пунктуации.
- Локальные переводчики вынесены в sub_translate/translators/local, общая логика перенесена в utils/local_utils.py.
- Убрано дублирование логики сборки карт строк в Google Web переводчике.
- Убрано дублирование обработки результатов перевода в пайплайне batch.
- В UI добавлена модалка с настройками умного объединения реплик.
- В очистке строк добавлено вставление пробела после конца предложения при слитном тексте (включая ?/!).
- Умное объединение реплик теперь учитывает заглавную букву как признак новой фразы.
- Восстановление строк теперь распределяет перевод по относительному числу слов и запятым, чтобы избегать пустых строк.
- Добавлен флаг --force и UI-переключатель для игнорирования кеша перевода.
- В README добавлены контракты API для веб-интерфейса.
- Добавлен fallback загрузки HuggingFace-моделей без device_map при ошибках meta device/tensor.
- Добавлен флаг
--allow-cpu-fallbackи UI-настройка для перехода на CPU при ошибках загрузки локальных моделей. - Fallback загрузки HuggingFace теперь использует low_cpu_mem_usage=False, чтобы избежать meta device после повторной загрузки.
- Добавлена зависимость protobuf для загрузки моделей Seamless.
- Seamless загружается через safetensors, чтобы корректно находить веса модели.
- Настройки веб-интерфейса сохраняются в localStorage.
- В UI добавлены настройки модели агента и ключа OpenAI с редактированием через модальные окна.
- В папочном выборе UI скрываются файлы с неподходящим суффиксом исходного языка и уже готовым суффиксом целевого языка.
- Добавлен тест на fallback загрузки HuggingFace при meta device.
- Тест агента изолирован от локального кеша переводов.
- При meta ошибках выполняется повторная загрузка модели без device_map и с force_download.
- Сообщение о meta ошибке дополняется подсказкой очистить кеш модели.
- Модуль загрузки HuggingFace перенесён в utils.
- Веб-настройки перевода переработаны: зависимые селекторы языков, фиксация потоков для локальных моделей и поля Google/agent по выбору переводчика.
- Для Google добавлена настройка задержки между запросами в UI и учёт задержки в переводчике.
- Секции настроек UI корректно скрываются через атрибут hidden.
- Исправлено открытие меню выбора файлов/папок и обработка кликов по пунктам меню.
- Устранено открытие меню после перетаскивания; кнопки выбора файла/папки обрабатываются напрямую.
- UI использует системные диалоги выбора файла/папки; результат пишется рядом с исходником.
- Исправлена ошибка запуска перевода в UI из-за отсутствующего global для active_job_id.
- В UI добавлен прогресс по каждому файлу во время перевода.
- Панель логов смещена вниз, а область файлов и настроек увеличена; готовые прогресс-бары стали однотонно зелёными.
- Разделение батч-ответов агента сделано более устойчивым к отсутствию переносов вокруг разделителя.
- В веб-консоли добавлены события начала/кеша/завершения файла и проксирование логов агента.
- Веб-консоль теперь принимает warnings только при verbose и показывает их детально (включая источник).
- Добавлена синхронизация активной задачи для UI после перезагрузки страницы.
- Исправлена ошибка запуска фоновой задачи из-за неверного вызова _emit_job_event.
- Убрано предупреждение transformers о конфликте max_new_tokens/max_length для локальных моделей.
- Для локальных моделей при 8-битной квантовке разрешён CPU offload, чтобы избежать ошибки при нехватке VRAM.
- Исправлена передача llm_int8_enable_fp32_cpu_offload: параметр задается через BitsAndBytesConfig.
- Добавлен fallback загрузки NLLB без 8-битной квантовки при ошибке meta tensor во время распределения по устройствам.
- Добавлен повторный fallback NLLB через device_map="auto" при сохранении meta tensor после загрузки.
- Добавлена единая загрузка .env для CLI и веб-интерфейса.
- Загрузка .env выполняется при импорте пакета, чтобы переменные окружения применялись до инициализации моделей.
- В .env задокументированы переменные для кешей HuggingFace и временных файлов.
- Убрана переменная TRANSFORMERS_CACHE из .env и README: используйте HF_HOME.
- Убрано повторение сообщения о выбранной модели агента при многопоточном переводе.
- Добавлены зависимости huggingface_hub==0.36.0 и hf_xet==1.2.3 для ускорения загрузки моделей.
- Добавлен веб-интерфейс на FastAPI с выбором файлов/папок, настройками перевода и журналом логов.
- Добавлены статические ассеты UI (index.html, styles.css, app.js).
- В requirements.txt зафиксированы зависимости fastapi и uvicorn.
- Унифицирована обработка языковых кодов и выбор устройства для локальных моделей перевода.
- NLLB по умолчанию переключён на
facebook/nllb-200-3.3B, добавленnllb-liteдляfacebook/nllb-200-distilled-1.3B. - Добавлены локальные переводчики SeamlessM4T v2 (Large) и MADLAD-400.
- Увеличено значение потоков по умолчанию до 3 для Google и агента (локальные модели остаются однопоточными).
- Добавлен кеш результата перевода по связке
<input>.<api>.<to>с восстановлением файла из кеша. - Добавлены проверки логики кеширования результата.
- Добавлена накопительная статистика по токенам и стоимости для текущей сессии в логах агента.
- Обновлено формирование имени результата: добавлен суффикс переводчика и замена языкового суффикса на код целевого языка.
- Добавлены проверки формирования путей CLI.
- Обновлены версии torch и torchvision в requirements.txt для доступных сборок под Python 3.14.
- Исправлена реализация FSM-переводчика: добавлен translate_batch для совместимости с пайплайном.
- Исправлено восстановление строк при нехватке слов в переводе (без падения на IndexError).
- Агент переводит пачку одним запросом и разбирает результат по разделителям.
- Исправлен вывод VTT: идентификатор реплики сохраняется перед таймкодом.
- Исправлена запись файлов: устраняется удвоение CRLF и лишние пустые строки.
- Добавлены проверки форматов SRT и ASS на базе тестовых примеров.
- Перевод зависимостей torch/torchvision на CUDA-сборки для работы с GPU.
- Обновлены CUDA-сборки torch/torchvision до cu128 для поддержки GPU в Python 3.14.
- Зафиксированы прямые ссылки на CUDA cu128 колёса torch/torchvision для Windows cp314.
- Добавлена зависимость accelerate для загрузки NLLB на GPU.
- Добавлен pyproject.toml с метаданными сборки и версией пакета.
- Добавлены диаграмма пайплайна и описание .env в README.md.
- Добавлен .env для локального запуска.
- Почищены зависимости в requirements.txt.
- Добавлен консольный переводчик субтитров (ASS/SRT/VTT) с Google по умолчанию.
- Добавлены локальные переводчики NLLB и FSMT.
- Добавлены флаги CLI для загрузки промптов агента из файлов.
- Добавлены примеры файлов промптов агента в README.md.
- Перенесены утилиты разбора/склейки и анализ строк субтитров.
- Добавлены базовые тесты для разборщиков и очистки строк.