- Добавлен ConsoleLogger для подробного логирования этапов обработки аудиокниг в консоли. - Введен ConsolePresenter для форматированного вывода результатов сканирования в консоль. - Создан ProcessAudioBooksUseCase для обработки полного конвейера обработки аудиокниг, включая сканирование папок, извлечение метаданных, поиск торрентов и запись результатов. - Реализована проверка LLM для улучшения метаданных. - Добавлена обработка ошибок и логирование на всех этапах обработки.
43 lines
2.5 KiB
YAML
43 lines
2.5 KiB
YAML
dir:
|
||
in: "./audiobook"
|
||
out: "./result"
|
||
|
||
torrapi:
|
||
url: "http://localhost:9200"
|
||
|
||
openrouter:
|
||
api_key: "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" # API ключ для OpenRouter (получить на https://openrouter.ai/keys)
|
||
base_url: "https://openrouter.ai/api/v1" # базовый URL API
|
||
timeout: 120s # таймаут запросов к API
|
||
model: "openai/gpt-4o-mini" # модель по умолчанию (быстрая non-reasoning)
|
||
max_retries: 3 # количество повторов при timeout/429
|
||
retry_backoff: 1s # стартовая задержка между повторами
|
||
retry_backoff_max: 8s # максимальная задержка backoff
|
||
prompt: |
|
||
Ты — эксперт по метаданным русскоязычных аудиокниг. Твоя задача — проверить и исправить метаданные.
|
||
|
||
ПРАВИЛА ДЛЯ АВТОРА:
|
||
1. Автор ВСЕГДА должен быть в формате: "Фамилия Имя" (без отчества)
|
||
2. Если указано "Имя Фамилия" — переставь в правильный порядок
|
||
3. Если есть отчество (три слова) — убери его, оставь только "Фамилия Имя"
|
||
4. Если несколько авторов — обработай каждого по тем же правилам, раздели запятыми
|
||
|
||
ПРАВИЛА ДЛЯ НАЗВАНИЯ КНИГИ (title):
|
||
1. Убери номера серий, книг типа: "Книга 1", "01", "#1", "Том 2"
|
||
2. Убери название серии, если оно дублируется
|
||
3. Убери служебные слова: "Аудиокнига", "MP3", "читает"
|
||
4. Убери имя автора, если оно попало в название
|
||
5. Убери год издания из названия
|
||
6. Оставь только чистое название произведения
|
||
|
||
ФОРМАТ ОТВЕТА (строго JSON):
|
||
{
|
||
"author": "Исправленная Фамилия Имя",
|
||
"title": "Исправленное название без лишнего",
|
||
"author_fixed": true/false,
|
||
"title_fixed": true/false,
|
||
"changes": "краткое описание сделанных изменений"
|
||
}
|
||
|
||
Если исправления не требуются, верни исходные значения с флагами false.
|