Serwisy modeli
Modele należą do tej aplikacji (własny stack compose). Panel ChildProxy zarządza kontami i politykami per-dziecko — tutaj jest wyłącznie silnik.
Wydajność i cache
Werdykty są kluczowane keyed-hashem (bez treści). Listy słów są własnością aplikacji klienckich — silnik trzyma tylko snapshoty adresowane treścią.
Object storage
Cache obrazów ma dwie warstwy: trwałą w buckecie i gorącą w Redisie. Odczyt idzie z gorącej, a przy chybieniu z bucketu — i wraca do gorącej. Gdy warstwa trwała stoi pusta mimo ruchu, zapisy do bucketu nie dochodzą i po restarcie kontenera cała wiedza o obrazach przepada. Drugi bucket trzyma wagi modeli lokalnych (infra/sync-weights.sh).
Aplikacje klienckie
Klienci rozpoznawani po client_id w żądaniach (dziś: mitm; w planie: gateway API, plugin IG).
Model SGD wspólny dla wszystkich profili
Klasyfikator liniowy uczony na decyzjach tieru zdalnego — domyślnie w oknie, nie w locie (patrz sekcja „Okno uczenia" niżej). Silnik trzyma jeden taki model (/app/data/local_model.joblib), więc douczanie z dowolnego profilu zmienia zachowanie wszystkich. Profil decyduje wyłącznie o tym, czy go używa (krok local_ml, backend sgd), przy jakiej pewności mu ufa i czy jego ruch dokłada próbki (local_ml_learning).
Douczanie
Plik z dysku
Okno uczenia zbieranie ciągłe, nauka wsadowa
Gorąca ścieżka nie doucza modelu — dopisuje przykład do zaszyfrowanego bufora (osobny klucz na każdą dobę). Wagi liczy jeden przebieg: nocny albo odpalony stąd. Dzięki temu douczanie nie blokuje klasyfikacji, a przy kilku maszynach silnika nauka żadnej z nich nie ginie pod ostatnim zapisem do wspólnego bucketu.
Ustawienia
Kandydaci na listy słów ?
Propozycje do rozpatrzenia
Encoder trenowany wsadowo
Fine-tunowany model językowy (HerBERT / mDeBERTa) w osobnym serwisie ml-encoder. Wagi ładują się raz przy starcie serwisu, więc panel go nie douczy — trening to scripts/train_local_encoder.py (godziny na GPU), a potem restart serwisu. To jedyny lokalny klasyfikator, który da się zróżnicować per profil: krok local_ml przyjmuje local_ml_encoder_url, więc profil może wskazać inną instancję serwisu — z innymi wagami.
Poświadczenia Google
Tu leżą wyłącznie sekrety i tożsamość — jeden klucz i jedno konto serwisowe na instalację. Którym z nich pójdzie ruch i w jakim regionie, decyduje profil (Profile → krok „Model zdalny"), bo to decyzja o rezydencji danych, a ta jest różna dla treści dziecka i dla komentarzy publicznych.
Poświadczenia pozostałych podpięć
Osobne usługi, niezależne od konta Google. Który profil z nich skorzysta, decyduje pole Podpięcie w kroku „Model zdalny" — samo wpisanie klucza niczego nie przepina.
Fallbacki ścieżki AI
Niezdrowa Ollama → moderacja modelem zastępczym Gemini zamiast blokady wszystkiego.
Billing zużycia AI
Niezależny rachunek silnika — aplikacje klienckie prowadzą własne rozliczenia (ChildProxy rozbija koszt na dzieci i konta), ale tutaj widać sumę po wszystkich klientach i można zrobić cross-check: rozjazd między billingiem klienta a rachunkiem silnika oznacza zgubione zdarzenia albo ruch nieujęty w rozliczeniu. Agregaty dobowe, bez treści i bez danych użytkownika.
Wg modelu
Telemetria
Własny Redis silnika (retencja wg telemetry w engine_config) — bez bazy klienta, treść zaszyfrowana at-rest.
Profile pipeline
Nazwane łańcuchy kroków — własność silnika. Trzy osie strojenia:
profil (poziom ochrony / zastosowanie) × medium
(web, youtube, chat…) × kierunek (przychodzące / wychodzące).
Efektywna konfiguracja to
pipeline → directions[kierunek] → media[medium] → media[medium].directions[kierunek] → overrides klienta,
bo inne progi pasują do długiego artykułu, inne do jednozdaniowego komentarza,
a jeszcze inne do zdania, które dziecko dopiero pisze.
Wybierz profil z drzewa po lewej. Pod nazwą profilu siedzi jego pipeline bazowy i warianty medium — kropka oznacza wariant z własnym strojeniem.
Podsumowanie profilu — łańcuch, alerty, obrazy
steps_order) jest własnością silnika: panel je włącza,
wyłącza i stroi, ale kolejności nie zmienia — to decyzja architektoniczna, nie strojenie.
Obrazy ?
Pełna definicja profilu — tryb dla rzeczy, których formularz nie pokrywa
(m.in. alerting, image).
Testy profili
Przebieg zestawu przypadków przez wybrany profil. Kryteria w kolejności ważności: false-allow (szkodliwe przepuszczone) → zgodność → false-block → koszt.
Próbna moderacja obrazu
Sprawdza pełny łańcuch wizyjny (CSAM → NSFW → model wizyjny → OCR) dla wybranego profilu — tak jak zrobi to aplikacja kliencka.
Próbna moderacja
Konta operatorów panelu
Konta panelu silnika są NIEZALEŻNE od kont panelu ChildProxy — to osobne aplikacje i osobne magazyny. Ostatniego aktywnego administratora nie da się usunąć ani wyłączyć: panel bez niego byłby nie do odzyskania z przeglądarki.