- новое поле [general].language (ru|en, дефолт en) — единый источник языка локализованного title детектора и локали запросов к метабазам; original_title всегда на языке оригинала - локаль TMDB (поиск + credits) выводится из него, [metadata.tmdb].language убран - промпт LLM явно задаёт язык title с fallback на оригинал
3.7 KiB
MODIFIED Requirements
Requirement: Контракт LLM на оригинальное и локализованное названия
Промпт распознавания SHALL требовать от модели всегда заполнять и title, и
original_title. Если отдельного оригинального названия нет или контент
российского происхождения, модель SHALL дублировать title в
original_title. При неуверенности в оригинальном названии модель SHALL
дублировать title, а не выдумывать название (защита от ложного авто-матча).
Промпт SHALL явно задавать язык локализованного title из глобальной
настройки language (ru|en, дефолт en): модель SHALL возвращать title
на выбранном языке, а при отсутствии перевода — на языке оригинала (fallback).
Языковая директива SHALL касаться ТОЛЬКО title; original_title остаётся на
языке оригинала независимо от language (правила дублирования выше не
меняются). provider_hint и структурные поля (files[].src, роли, нумерация)
языковой директивой не затрагиваются.
Разбор ответа SHALL оставаться устойчивым к пустому original_title: пустое
значение не отбраковывается и не вызывает correction-ретрай; сверка
gracefully использует доступные названия.
Scenario: Российский фильм — дублирование
- GIVEN раздача российского фильма без отдельного оригинального названия
- WHEN модель возвращает план
- THEN
titleиoriginal_titleзаполнены одинаковым каноническим названием
Scenario: Пустой original_title не ломает разбор
- GIVEN ответ модели с пустым
original_title - WHEN план разбирается
- THEN разбор успешен без correction-ретрая
- AND сверка использует
title(иprovider_hint)
Scenario: title приходит на языке из настройки
- GIVEN
language=enи иностранный фильм с известным английским названием - WHEN модель возвращает план
- THEN промпт требовал
titleна английском - AND
original_titleостаётся на языке оригинала (директива его не касается)
Scenario: Промпт задаёт fallback на оригинал при отсутствии перевода
- GIVEN
language=en - WHEN собирается промпт распознавания
- THEN промпт требует при отсутствии перевода вернуть
titleна языке оригинала, а не выдумывать название
Scenario: Дефолтный язык — английский
- GIVEN
languageне задан в конфиге - WHEN собирается промпт распознавания
- THEN промпт требует
titleна английском (дефолтen)