Docker-сервис, выбор основы и сравнение моделей, сборщик датасета
docker / build (push) Failing after 39s
docker / build (push) Failing after 39s
- Docker: Dockerfile (CPU), compose с FlareSolverr, настройка через DUB_* переменные, токен доступа к /predict, tools/pack_models.py, workflow Gitea Actions, docs/docker.md - Модель грузится офлайн (config.json рядом с весами); общий код вынесен в src/spans.py, сервису не нужны sklearn/matplotlib/pandas - Обучение: профили tiny2/base/large/modern, запуски в models/runs, реестр и честное сравнение на одной тестовой выборке (src/runs.py), пункт меню «Модели» - Датасет: язык и аудио-параметры дорожек, 18+ по строкам «Аудио», ручные метки по ссылкам, переиндексация сохранённого HTML, параллельная сборка, сбалансированная выборка - Тексты страниц (data/pages) больше не хранятся в git Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
1 parent
d155b8584b
commit
efc9a4f56a
411 files changed
+87495
-27363
No files matched your search
@@ -21,6 +21,8 @@ python -m src.service --model models/best --port 8000
|
||||
# или открыто наружу: python -m src.service --host 0.0.0.0 --port 8000
|
||||
```
|
||||
|
||||
В Docker (VPS, FlareSolverr через переменные окружения, CI/CD в Gitea) — см. [docker.md](docker.md).
|
||||
|
||||
API:
|
||||
|
||||
* `GET /health` → `{"status": "ok", "model": "...", "device": "...", "classes": [...]}`
|
||||
@@ -32,6 +34,18 @@ API:
|
||||
|
||||
Ответ: `{"tracks": [ …контракт из docs/inference.md… ]}`.
|
||||
|
||||
Каждая дорожка помимо типа, студии и 18+ несёт (поля только добавляются, прежние не менялись):
|
||||
|
||||
| Поле | Что это |
|
||||
|---|---|
|
||||
| `lang`, `lang_confidence`, `lang_source` | язык дорожки (`RUS`, `UKR`, `ENG`, …); источник: `model` (языковая голова), `audio` (строка «Аудио»), `text` (слова в строке дорожки) или `null` |
|
||||
| `role` | `перевод` / `оригинал` / `комментарии` (по строке «Аудио» и тексту, правилами) |
|
||||
| `official` | в строке «Аудио» сказано «официальный» / «лицензионный» |
|
||||
| `audio` | `{codec, channels, bitrate_kbps}` из строки «Аудио» (или `null`) |
|
||||
|
||||
Русский и украинский дубляж одной студии — две отдельные дорожки; так же раздельны обычная
|
||||
дорожка студии и её дорожка 18+ (если на странице две строки «Аудио» с одной студией).
|
||||
|
||||
curl:
|
||||
|
||||
```bash
|
||||
@@ -204,3 +218,23 @@ node onnx_local.mjs "../../models/best-onnx" "Перевод: Дублирова
|
||||
одну дорожку; для полной обработки страницы нужно сначала получить сегменты
|
||||
(например, один вызов лёгкого HTTP-эндпоинта или порт `html_extract.py` —
|
||||
это регулярки без зависимостей, кроме BeautifulSoup для HTML).
|
||||
|
||||
## Серии по студиям (для Sonarr)
|
||||
|
||||
В ответе релиза у каждой дорожки есть `episodes` («1-4», «1,3-5») и `episode_ranges`
|
||||
(`[[1, 4]]`); `null` — серии у дорожки не указаны, считается, что она покрывает весь
|
||||
релиз. Для сериалов добавлен блок `series`:
|
||||
|
||||
```json
|
||||
"series": {"season": "2", "episodes": "1-9", "total": 10,
|
||||
"by_studio": {"LostFilm": "1-4", "Red Head Sound": "1"},
|
||||
"full_release": ["Syncmer"]}
|
||||
```
|
||||
|
||||
`full_release` — студии, у которых серии не указаны: для сериала это значит, что озвучены
|
||||
все серии, вышедшие в релизе.
|
||||
|
||||
`episodes` и `total` берутся из заголовка («сезон 2, серии 1-9 из 10»), `by_studio` — из
|
||||
строк дорожек. Диапазоны разбирает `src/episodes.py` правилами (числа и диапазоны
|
||||
точны); размеченных примеров пока мало (серии указаны примерно в 5% строк nnm), поэтому
|
||||
обучаемый разбор можно делать после накопления данных сборщиком.
|
||||
Reference in new issue
Block a user