O projekcie

Demokracja pod lupą AI

Niezależny projekt społeczny, który automatyzuje pozyskiwanie, transkrypcję i analizę dokumentów samorządowych gminy Piława Górna. Cel: dostarczyć mieszkańcom przystępną wiedzę o tym, co dzieje się w ich mieście — bez konieczności przedzierania się przez urzędowy język setek stron PDF.

Co znajdziesz na tej stronie

Jak to działa — pipeline danych

  1. Krok 1: Automatyczne pobieranie

    n8n (cron) uruchamia scrapery BIP — interpelacje, zarządzenia, PDFy. yt-dlp pobiera nagrania wideo sesji. Nowe dane wykrywane automatycznie.

  2. Krok 2: Transkrypcja i OCR

    Nagrania → tekst: fal.ai Whisper Large v3 z diaryzacją mówców. Dokumenty PDF → tekst za pomocą ekstrakcji natywnej lub analizy obrazu przez LLM.

  3. Krok 3: Analiza AI

    Teksty trafiają do modelu LLM przez fal.ai, który generuje streszczenia, wyciąga kluczowe fakty i kategoryzuje dokumenty przystępnym językiem.

  4. Krok 4: Baza danych i publikacja

    Dane zapisywane do PostgreSQL przez Hono REST API. Next.js 15 serwuje stronę w trybie SSR/ISR — zawsze aktualne, bez ręcznego deploymentu.

Największe wyzwanie — odczyt dokumentów PDF

Na pozór proste zadanie — „pobierz treść z PDF” — w praktyce bywa bardzo trudne. Dokumenty samorządowe w BIP to mieszanina różnych formatów i jakości:

  • Dokumenty pisane odręcznie

    Starsze protokoły i zarządzenia są często skanami ręcznie pisanych dokumentów. Standardowe narzędzia do ekstrakcji tekstu zwracają pusty ciąg — dokument istnieje, ale jest obrazem.

  • Skany złej jakości

    Część dokumentów to skany z kserokopiarki — przekrzywione, niewyraźne, z artefaktami. OCR na takim materiale daje błędy literowe, błędnie rozpoznane cyfry i kwoty w budżetach.

  • Tabele i skomplikowane układy

    Załączniki budżetowe zawierają rozbudowane tabele — ich odczyt bez znajomości struktury daje bezużyteczną miazgę liczb i liter bez kontekstu.

Jak sobie z tym radzimy

  1. Ekstrakcja natywna jako pierwsza próba

    Najpierw próbujemy wyodrębnić tekst ze struktury PDF. Jeśli zwraca wystarczającą liczbę znaków — dokument jest cyfrowy i nie potrzebuje OCR.

  2. LLM dla skanów

    Gdy ekstrakcja zwraca pusty lub bardzo krótki tekst, strony PDF konwertujemy na obrazy i wysyłamy do modelu przez fal.ai. Model radzi sobie nawet z ręcznym pismem — choć nadal nie bezbłędnie.

  3. Oznaczanie niepewności

    Streszczenia wygenerowane bez pełnego tekstu źródłowego są oznaczane jako mniej wiarygodne. Zawsze wskazujemy link do oryginału w BIP — żeby każdy mógł sprawdzić sam.

Uwaga: streszczenia AI są pomocą, nie zastępstwem dokumentu urzędowego. Zawsze podajemy link do źródła.

Silnik systemu

  • Node.js + Hono

    REST API

  • PostgreSQL 16

    Baza danych

  • n8n

    Automatyzacja

  • fal.ai Whisper

    Transkrypcja

  • fal.ai LLM

    AI / Analiza

  • Next.js 15 + React

    Frontend

Częste pytania

Czy to oficjalna strona Gminy?
Nie. To oddolna inicjatywa mieszkańców. Oficjalne dokumenty zawsze w Biuletynie Informacji Publicznej (otwiera się w nowej karcie).
Jak dokładne jest AI?
Streszczenia AI są uproszczeniem. Kluczowe liczby i fakty warto zawsze zweryfikować klikając link "BIP" przy każdym dokumencie. Miejsca oparte wyłącznie na OCR ze skanu mogą zawierać błędy rozpoznawania tekstu.
Skąd biorą się dane?
Wyłącznie z publicznych źródeł: BIP gminy Piława Górna, nagrania wideo posiedzeń oraz dokumenty PDF udostępnione przez urząd w ramach dostępu do informacji publicznej.
Jak często dane są aktualizowane?
Zarządzenia i interpelacje synchronizowane są automatycznie — zarządzenia codziennie, interpelacje co tydzień. Transkrypcje sesji przetwarzane są po każdym posiedzeniu.