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
Sesje Rady Miejskiej
Pełne transkrypcje nagrań wideo z diaryzacją mówców, streszczenia AI, informacje o uchwałach i frekwencji. Każda sesja to gotowy raport — kto mówił, o czym, ile czasu i jak głosował.
Zobacz listęInterpelacje radnych
Pytania radnych do Burmistrza z VII i VIII kadencji (2018–2029). Filtrowanie po radnym, roku, kategorii. Każda interpelacja ma streszczenie AI: o co pytał radny i co odpowiedział Burmistrz.
PrzeglądajZarządzenia Burmistrza
Decyzje wykonawcze Burmistrza od 2024 roku. Wyszukiwarka pełnotekstowa, filtry, streszczenia AI pisane językiem zrozumiałym dla każdego mieszkańca — bez żargonu urzędowego.
Przeglądaj
Jak to działa — pipeline danych
Krok 1: Automatyczne pobieranie
n8n (cron) uruchamia scrapery BIP — interpelacje, zarządzenia, PDFy. yt-dlp pobiera nagrania wideo sesji. Nowe dane wykrywane automatycznie.
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.
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.
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
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.
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.
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.