Obecna architektura preprocessora opiera się na statycznej stałej BASE_OUTPUT_DIR wskazującej na /app/output_data. Powoduje to następujące ograniczenia:
- Możliwość przetwarzania tylko jednego serialu naraz.
- Mieszanie plików wyjściowych (wideo, transkrypcje, JSON) różnych seriali w tym samym katalogu.
- Brak izolacji danych, co utrudnia zarządzanie wieloma produkcjami i czyszczenie środowiska.
Cel zadania
Celem jest wprowadzenie obsługi wielu seriali poprzez dynamiczne generowanie ścieżek wejściowych i wyjściowych w oparciu o nazwę serii (series_name). Każdy serial ma posiadać dedykowany folder wejściowy oraz wyjściowy, co zapewni pełną izolację danych.
Proponowane rozwiązanie
1. Zmiana struktury katalogów
System ma wymuszać następującą strukturę:
- Input:
/input_data/{series_name}/Sxx/.
- Output:
/app/output_data/{series_name}/ (zawierający podkatalogi transcoded_videos, transcriptions itp.).
2. Zmiany w konfiguracji (Core)
- Zmiana
preprocessor/config/config.py: Zastąpienie BASE_OUTPUT_DIR funkcją get_base_output_dir(series_name).
- Aktualizacja
preprocessor/core/output_path_builder.py: Wszystkie metody budujące ścieżki muszą przyjmować parametr series_name.
3. Walidacja (Strict Mode)
W base_processor.py należy dodać walidację ścieżki wejściowej. Jeśli struktura katalogów nie odpowiada wzorcowi /input_data/{series_name}/, proces powinien zostać przerwany z błędem i instrukcją migracji.
4. Aktualizacja procesorów i CLI
Wszystkie komponenty pipeline'u (Video, Transcription, Embedding, Indexing) oraz komendy CLI muszą zostać zaktualizowane, aby propagować series_name do warstwy generowania ścieżek.
Zakres prac (Task List)
-
Core Config:
-
Zmodyfikować config.py (dynamiczne path factory).
-
Zaktualizować output_path_builder.py (dodanie parametru series_name).
-
Dodać walidację input path w base_processor.py.
-
Processors:
-
Zaktualizować VideoTranscoder, FrameExporter, SceneDetector.
-
Zaktualizować generatory transkrypcji i embeddingów.
-
Zaktualizować ElasticDocumentGenerator i ArchiveGenerator.
-
CLI & Pipeline:
-
Dostosować run_all.py oraz pipeline/steps.py do przekazywania nazwy serii.
-
Zaktualizować pozostałe komendy (transcode, index, scrape).
Kryteria akceptacji
- Preprocessor poprawnie przetwarza dane umieszczone w
/input_data/{series_name}/.
- Pliki wyjściowe są generowane w izolowanym katalogu
/output_data/{series_name}/.
- Próba uruchomienia na starej strukturze katalogów kończy się błędem (
FileNotFoundError) z informacją o wymaganej migracji.
- Możliwe jest równoległe uruchomienie procesu dla dwóch różnych seriali bez konfliktu plików.
- Zmiany nie obejmują logiki bota (runtime), a jedynie generowanie danych przez preprocessor.
Obecna architektura preprocessora opiera się na statycznej stałej
BASE_OUTPUT_DIRwskazującej na/app/output_data. Powoduje to następujące ograniczenia:Cel zadania
Celem jest wprowadzenie obsługi wielu seriali poprzez dynamiczne generowanie ścieżek wejściowych i wyjściowych w oparciu o nazwę serii (
series_name). Każdy serial ma posiadać dedykowany folder wejściowy oraz wyjściowy, co zapewni pełną izolację danych.Proponowane rozwiązanie
1. Zmiana struktury katalogów
System ma wymuszać następującą strukturę:
/input_data/{series_name}/Sxx/./app/output_data/{series_name}/(zawierający podkatalogitranscoded_videos,transcriptionsitp.).2. Zmiany w konfiguracji (Core)
preprocessor/config/config.py: ZastąpienieBASE_OUTPUT_DIRfunkcjąget_base_output_dir(series_name).preprocessor/core/output_path_builder.py: Wszystkie metody budujące ścieżki muszą przyjmować parametrseries_name.3. Walidacja (Strict Mode)
W
base_processor.pynależy dodać walidację ścieżki wejściowej. Jeśli struktura katalogów nie odpowiada wzorcowi/input_data/{series_name}/, proces powinien zostać przerwany z błędem i instrukcją migracji.4. Aktualizacja procesorów i CLI
Wszystkie komponenty pipeline'u (Video, Transcription, Embedding, Indexing) oraz komendy CLI muszą zostać zaktualizowane, aby propagować
series_namedo warstwy generowania ścieżek.Zakres prac (Task List)
Core Config:
Zmodyfikować
config.py(dynamiczne path factory).Zaktualizować
output_path_builder.py(dodanie parametruseries_name).Dodać walidację input path w
base_processor.py.Processors:
Zaktualizować
VideoTranscoder,FrameExporter,SceneDetector.Zaktualizować generatory transkrypcji i embeddingów.
Zaktualizować
ElasticDocumentGeneratoriArchiveGenerator.CLI & Pipeline:
Dostosować
run_all.pyorazpipeline/steps.pydo przekazywania nazwy serii.Zaktualizować pozostałe komendy (transcode, index, scrape).
Kryteria akceptacji
/input_data/{series_name}/./output_data/{series_name}/.FileNotFoundError) z informacją o wymaganej migracji.