66 lines
3.1 KiB
Markdown
66 lines
3.1 KiB
Markdown
# Media Pipeline — Agentic Flow
|
|
|
|
## Статус (2026-05-16)
|
|
|
|
✅ Реализовано и задеплоено на Кракен (`commit 3df97a1`)
|
|
|
|
## Архитектура
|
|
|
|
### `ChatGPTAPI.resolveMedia(filename:)`
|
|
Tool-calling loop, max 8 раундов, модель `openai/gpt-oss-120b:free` через OpenRouter.
|
|
|
|
**Инструменты:**
|
|
| Tool | Описание |
|
|
|------|----------|
|
|
| `search_tmdb(title, year?, language?)` | Поиск в TMDb |
|
|
| `search_kinopoisk(title, year?)` | Поиск в KP (советские/российские) |
|
|
| `fetch_page(url)` | Fetch + HTML-strip https URL (IMDb, BBC, Wikipedia) |
|
|
|
|
**Результаты (`MediaResolutionResult`):**
|
|
- `resolved(tmdbId, kpId, imdbId, title, year)` — найдено в БД → пишем NFO через TMDb
|
|
- `metadata(title, year, description, genres, posterUrl, sourceUrl)` — web-only → `writeCustomNFO()`
|
|
- `unresolvable(reason)` — не удалось → hint в unresolved.json
|
|
|
|
### `writeCustomNFO()`
|
|
Пишет NFO без DB binding (для BBC docs, Frozen Kingdom и т.д.):
|
|
- Тег `<generator>media-pipeline-agent</generator>` — отличает от pipeline-generated
|
|
- Поддерживает poster_url, description, genres
|
|
|
|
## Запуск на Кракене
|
|
|
|
```bash
|
|
cd /srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/docker/media-pipeline
|
|
docker run --rm \
|
|
-v "$(pwd)/config.json:/config/config.json:ro" \
|
|
-v "/srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/media:/media" \
|
|
-v "$(pwd)/cache:/config/cache" \
|
|
-v "$(pwd)/unresolved.json:/config/unresolved.json" \
|
|
media-pipeline:kraken agent --apply --limit 20
|
|
```
|
|
|
|
Без `--apply` — только hints в unresolved.json, без записи NFO.
|
|
|
|
## Pending unresolved (12 items, 2026-05-16)
|
|
|
|
| Путь | Группа | Ожидаемый результат |
|
|
|------|--------|---------------------|
|
|
| `bbc. the real jungle book bear 2012` | BBC doc | metadata (BBC page) |
|
|
| `bbc. секреты собак` | BBC doc | metadata |
|
|
| `penguin meet the family (2020)` | BBC doc | metadata |
|
|
| `бегемоты - жизнь в воде` | BBC doc | metadata |
|
|
| `супер белки (2018)` | doc | metadata/resolved |
|
|
| `шпион в снегах 2018` | doc | metadata/resolved |
|
|
| `таинственная жизнь собак (hdtvrip 720p, 2013)` | doc | resolved (KP) |
|
|
| `Таинственная жизнь собак (HDTVRip 720p, 2013).mkv` | дубль | resolved |
|
|
| `budil'nik 1984` | советский м/ф | resolved (KP) |
|
|
| `novogodn'aya_pesenka_deda_moroza` | советский м/ф | resolved (KP) |
|
|
| `Nehochuha.XVid.DVDRip.avi` | дубль папки | shadow/skip |
|
|
| `Bezumnyj_Maks_3...mkv` | дубль папки | shadow/skip |
|
|
|
|
## Следующие шаги
|
|
|
|
- [ ] Запустить `agent --apply` на 12 unresolved
|
|
- [ ] Проверить Frozen Kingdom (документалка про снежного барса)
|
|
- [ ] CV/Whisper (Tier 6) — для случаев где даже агент не справляется
|
|
- [ ] Hermes cron: запускать `agent --apply` после каждого sync
|