Поиск по нескольким названиям при сверке с базой (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:
@@ -268,9 +268,10 @@ func metadataProviders(cfg *config.Config, logger *slog.Logger) ([]metadata.Prov
|
||||
}
|
||||
if cfg.Metadata.TMDB.Enabled && cfg.Metadata.TMDB.APIKey != "" {
|
||||
p, err := metadata.NewTMDB(metadata.TMDBConfig{
|
||||
APIKey: cfg.Metadata.TMDB.APIKey,
|
||||
Proxy: cfg.Metadata.TMDB.Proxy,
|
||||
Timeout: cfg.Metadata.TMDB.Timeout.Std(),
|
||||
APIKey: cfg.Metadata.TMDB.APIKey,
|
||||
Proxy: cfg.Metadata.TMDB.Proxy,
|
||||
Timeout: cfg.Metadata.TMDB.Timeout.Std(),
|
||||
Language: cfg.Metadata.TMDB.Language,
|
||||
}, logger)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("tmdb provider: %w", err)
|
||||
|
||||
Reference in New Issue
Block a user