mirror of
https://github.com/Horizontal42/Sort_YM.git
synced 2026-11-10 15:42:02 +03:00
neutral rationale for ru-only default, document --all-languages
This commit is contained in:
parent
1c0f6928bf
commit
8fc99b8959
4 changed files with 20 additions and 16 deletions
|
|
@ -117,11 +117,12 @@ report/apply/digest --source <url> → source.parse_playlist_url() → (user_id,
|
|||
3. An alphabet heuristic on the title/artist (Cyrillic vs Latin, `unicodedata`).
|
||||
4. Otherwise — `UNKNOWN` → a separate "Undetermined" playlist.
|
||||
|
||||
- **Lyric analysis (`lyrics.py`, `analyze.py`)**: only Russian-language tracks are analyzed. The
|
||||
reason is signal validity, not cost — on a foreign-language track the meaning arrives through
|
||||
the music and the vocal delivery, not through parsed words, so an LLM reading the literal text
|
||||
would add a signal the listener never perceives. Text fetching and analysis are **two separate
|
||||
commands** on purpose: the fetch is network-bound against the deprecated `track_supplement`,
|
||||
- **Lyric analysis (`lyrics.py`, `analyze.py`)**: by default only Russian-language tracks are
|
||||
analyzed — the prompt and the narrative fields (`summary`/`resonance`/`key_line`) are written
|
||||
in Russian and were validated against a Russian-lyrics pilot run; quality on other languages is
|
||||
unverified. `sort_ym lyrics --all-languages` lifts the filter and fetches/analyzes every track
|
||||
with available lyrics regardless of detected language (`lyrics.ru_lyric_track_ids(...,
|
||||
all_languages=True)`). Text fetching and analysis are **two separate commands** on purpose: the fetch is network-bound against the deprecated `track_supplement`,
|
||||
the analysis is a multi-hour local GPU job, and a prompt or model change must be re-runnable
|
||||
without touching Yandex again. `analyze` and `digest` construct no `Client` at all.
|
||||
|
||||
|
|
|
|||
|
|
@ -118,11 +118,12 @@ report/apply/digest --source <url> → source.parse_playlist_url() → (user_id,
|
|||
3. Эвристика по алфавиту названия/исполнителя (кириллица vs латиница, `unicodedata`).
|
||||
4. Иначе — `UNKNOWN` → отдельный плейлист «Не определено».
|
||||
|
||||
- **Разбор текстов (`lyrics.py`, `analyze.py`)**: разбираются только русскоязычные треки.
|
||||
Причина — валидность сигнала, не стоимость: на иноязычном треке смысл передаётся музыкой и
|
||||
подачей вокала, а не разобранными словами, поэтому LLM, читающая буквальный текст, добавит
|
||||
сигнал, который слушатель при прослушивании не считывает. Загрузка текста и анализ — это
|
||||
**две отдельные команды** намеренно: загрузка привязана к сети и устаревшему `track_supplement`,
|
||||
- **Разбор текстов (`lyrics.py`, `analyze.py`)**: по умолчанию разбираются только русскоязычные
|
||||
треки — промпт и нарративные поля (`summary`/`resonance`/`key_line`) написаны на русском и
|
||||
проверены на пилотном прогоне по русской лирике; качество на других языках не проверялось.
|
||||
`sort_ym lyrics --all-languages` снимает фильтр и загружает/разбирает все треки с доступным
|
||||
текстом независимо от определённого языка (`lyrics.ru_lyric_track_ids(...,
|
||||
all_languages=True)`). Загрузка текста и анализ — это **две отдельные команды** намеренно: загрузка привязана к сети и устаревшему `track_supplement`,
|
||||
анализ — это многочасовая работа локального GPU, а смена prompt или модели должна быть
|
||||
переиспользуема без нового обращения к Яндексу. `analyze` и `digest` вообще не создают `Client`.
|
||||
|
||||
|
|
|
|||
|
|
@ -175,9 +175,10 @@ song is about and why it might resonate.
|
|||
.venv\Scripts\python -m sort_ym digest # out/lyrics_digest.md + an aggregate block in out/digest.md
|
||||
```
|
||||
|
||||
Only Russian-language tracks are analyzed. On a foreign-language track the meaning is carried by
|
||||
the music and the vocal delivery rather than by parsed words, so a literal reading of the text
|
||||
would add a signal the listener never actually perceives.
|
||||
By default only Russian-language tracks are analyzed — the prompt and the narrative fields
|
||||
(`summary`/`resonance`/`key_line`) are written in Russian and were validated on a Russian-lyrics
|
||||
pilot run; quality on other languages is unverified. Pass `--all-languages` to `lyrics` to fetch
|
||||
and analyze every track with available lyrics regardless of detected language.
|
||||
|
||||
Requirements: Ollama running locally with the model named in `config.toml` under `[ollama]`
|
||||
(`ollama list` to check). No internet is used — `analyze` never talks to Yandex.
|
||||
|
|
|
|||
|
|
@ -176,9 +176,10 @@ $ python -m sort_ym digest
|
|||
.venv\Scripts\python -m sort_ym digest # out/lyrics_digest.md + агрегат в out/digest.md
|
||||
```
|
||||
|
||||
Разбираются только русскоязычные треки. На иноязычном треке смысл передаётся музыкой и подачей
|
||||
вокала, а не разобранными словами, поэтому буквальное чтение текста добавило бы сигнал, которого
|
||||
слушатель при прослушивании не считывает.
|
||||
По умолчанию разбираются только русскоязычные треки — промпт и нарративные поля
|
||||
(`summary`/`resonance`/`key_line`) написаны на русском и проверены на пилотном прогоне по
|
||||
русской лирике; качество на других языках не проверялось. Флаг `--all-languages` у `lyrics`
|
||||
снимает фильтр и загружает/разбирает все треки с доступным текстом независимо от языка.
|
||||
|
||||
Что нужно: запущенная локально Ollama с моделью из `config.toml`, блок `[ollama]` (проверить —
|
||||
`ollama list`). Интернет не используется: `analyze` не обращается к Яндексу вообще.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue