Поиск по нескольким названиям при сверке с базой (recognition)
Сверка с метабазой промахивалась на иностранных фильмах с русским релиз-именем (кейс «Тёмный рыцарь»): поиск шёл по одной строке provider_hint||title и игнорировал original_title, а базы индексированы прежде всего по оригинальным названиям. - matchMetadata ищет по ключам original_title → title → provider_hint с ранним стопом на первом единичном сильном матче; пустые и нормализованно-дублирующие ключи пропускаются, кандидаты для review копятся из всех заходов. - Промпт требует всегда заполнять title и original_title (дублировать при отсутствии оригинала / российском контенте; при неуверенности дублировать, не выдумывать). Разбор остаётся мягким к пустому original_title. - TMDB-поиск передаёт language (по умолчанию ru-RU, настраивается [metadata.tmdb].language); original_title не зависит от локали. - Нормализация названий сводит ё→е. Инварианты не ослаблены: авто только при подтверждённом единичном матче + структурной валидации + согласованности сигналов. Capability recognition впервые перенесена в OpenSpec; change архивирован. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,20 @@
|
||||
названию+году, берём официальный id и каноническое имя, собираем
|
||||
кандидатов. TVMaze — без ключа, только сериалы; внешний id
|
||||
(TVDB/IMDb) из `externals` идёт в имя папки.
|
||||
- **Поиск по нескольким названиям** в порядке убывания силы ключа:
|
||||
`original_title` → локализованное `title` → `provider_hint`. Базы
|
||||
индексированы прежде всего по оригинальным названиям, поэтому
|
||||
оригинал — первым; останавливаемся, как только очередной ключ дал
|
||||
единичный сильный матч. Пустые и нормализованно-дублирующие ключи
|
||||
пропускаем (русский фильм, где оригинал = локализованное, дёргает
|
||||
базу один раз). Кандидатов для review копим из всех заходов.
|
||||
- **Локаль TMDB:** запрос передаёт `language` (по умолчанию `ru-RU`,
|
||||
настраивается `[metadata.tmdb].language`). Влияет только на
|
||||
локализованный `Title`/`Name`; `original_title`/`original_name`
|
||||
остаётся на языке оригинала, поэтому оригинальная сторона сравнения
|
||||
не страдает, а русская — сходится.
|
||||
- **Нормализация названий** при сравнении сводит `ё`→`е` («Тёмный» и
|
||||
«Темный» — одно название).
|
||||
4. **Оценка уверенности** и решение: авто или review.
|
||||
|
||||
## Структура ответа LLM (предварительная)
|
||||
@@ -45,7 +59,9 @@
|
||||
```
|
||||
type movie | series
|
||||
title каноническое название
|
||||
original_title оригинальное название (если есть)
|
||||
original_title оригинальное (обычно англ.) название — заполняется всегда:
|
||||
нет отдельного / российский контент → дублирует title;
|
||||
при неуверенности дублируем, а не выдумываем
|
||||
year год
|
||||
provider_hint строка для поиска в базе (НЕ итоговый id)
|
||||
files[] { src, role: main|episode|subtitle|extra|sample|ignore,
|
||||
|
||||
Reference in New Issue
Block a user