Pomiń nawigację — przejdź do treści
Patologia? Zgłoś. Zweryfikuj. Napiętnuj.
PATOLOGII

Metoda

Tu pokazujemy dokładnie jak liczymy ranking, jak działa AI Strażnik i co dzieje się z twoim zgłoszeniem od kliknięcia „Wyślij" do publikacji.

Cykl życia zgłoszenia

  1. 1Submit: Użytkownik (zalogowany lub anonimowy) wypełnia formularz. Tytuł + opis + kategoria + urząd. Anonimowi podają email do claim flow.
  2. 2AI Strażnik: Treść przechodzi przez klasyfikator AI: spam, mowa nienawiści, dane osobowe, manipulacja. Jeśli spam_score lub hate_speech_score >0.85 — odrzucone z prośbą o poprawę.
  3. 3Moderacja: Moderator (rola=moderator|admin) widzi zgłoszenia w /moderacja. Decyzja: zaakceptuj / odrzuć / poproś o doprecyzowanie.
  4. 4Publikacja: Status `oczekujace` → widoczne publicznie, można je weryfikować.
  5. 5Weryfikacja społ.: Inni zalogowani użytkownicy oceniają: Potwierdzam / Podważam / Notatka. Każda waży reputacją głosującego.
  6. 6Konsensus: Algorytm liczy konsensus_score (-100 do +100). Powyżej +30 → status `potwierdzona_patologia`/`potwierdzona_pozytywna`. Poniżej -30 → `odrzucone`. Przedział → `kontrowersyjne`.
  7. 7Indeks patologii urzędu: Z agregacji konsensus_score zgłoszeń liczymy indeks per urząd (0-100, im wyżej tym gorzej).

Wzór: Indeks Patologii urzędu

Dla urzędu U z liczbą zgłoszeń N(U):

indeks(U) = 100 ×
  (Σ max(0, konsensus_score(z)) / 100) ÷ N(U)
  × wagaWolumenu(N(U))

gdzie:
  konsensus_score(z) ∈ [-100, +100]
  wagaWolumenu(n) = min(1, log10(n+1) / log10(10)) // tłumi efekt dla małej próbki
  • Wartość 0-100: 0 = ideał, 100 = jaskinia patologii.
  • Tylko zgłoszenia ze statusem `potwierdzona_patologia` / `kontrowersyjne` wliczamy do indeksu.
  • Wagi w drugiej iteracji wprowadzą czynnik czasu (świeższe zgłoszenia ważą więcej).
  • Dobre praktyki obniżają indeks symetrycznie.

Konsensus społeczny (Community Notes style)

Inspiracja: Twitter/X Community Notes. Idea: nie liczy się sumaryczny wynik głosowania, ale cross-faction agreement.

Każdy głos (Potwierdzam/Podważam/Notatka) waży reputacją głosującego. Reputację zdobywa się przez spójność z konsensusem w przeszłych głosowaniach — nie przez "wygrane" w jakąkolwiek stronę.

Konsekwencja: głosowanie tłumu w jedną stronę bez różnorodności źródeł NIE wpływa znacząco na konsensus. Dopiero gdy ludzie zwykle nie zgadzający się ze sobą się ZGADZAJĄ — score skacze.

Aktualnie: faza beta — używamy uproszczonego algorytmu (suma głosów ważona reputacją). Pełen algorytm Bridge-Based Ranking trafi do produkcji wraz z migracją Supabase.

AI Strażnik treści

Model:

GPT-4o
(default, można przełączyć w settings). Zwraca JSON z scoreami 0-1.

  • spam_score — czy to spam, oszustwo, reklama
  • hate_speech_score — mowa nienawiści, groźby
  • personal_data_score — czy ujawnia PESEL, pełne nazwiska, adresy
  • manipulation_score — sygnały manipulacji emocjonalnej, dezinformacji
  • credibility_score — wewnętrzna spójność narracji

Próg blokady: spam_score lub hate_speech_score > 0.85 → zgłoszenie odrzucone (z uzasadnieniem). Inne flagi tylko priorityzują kolejkę moderacji.

AI nie podejmuje decyzji ostatecznej — zawsze widzi to człowiek. Klasyfikator służy do sortowania.

Ochrona zgłaszającego

  • Anonimowość zgłaszającego jest defaultem. Nawet zalogowany user może wybrać opcję „anonim".
  • Nazwiska urzędników: tylko imię + pierwsza litera (np. „Pan Jan K.").
  • IP zapisujemy w logach 90 dni — wyłącznie na potrzeby zgodności DSA i fail2ban.
  • Email do claim flow przechowujemy zaszyfrowany (Supabase RLS).
  • Eksport CSV dla dziennikarzy jest w pełni anonimizowany (bez user_id, email).

Granice metodologii

  • To obraz emocji obywateli, nie naukowa ewaluacja skuteczności urzędu.
  • Algorytm nie jest odporny na koordynowane kampanie (mitygowane Community Notes-style).
  • Świeże urzędy z <5 zgłoszeniami mają niski confidence — pokażemy etykietę „Mała próbka".
  • Mała próbka nie znaczy „dobry urząd" — znaczy „brak danych".

Pełna transparentność jest naszą polisą. Zob. /transparentnosc dla finansów i zespołu.

Sugestie do metodologii: redakcja@zeropatologii.pl