Fak3Buster
PobierzDownload

Dla juryFor the jury

Projekt na konkurs „Fake OFF – Krytyczne myślenie w erze AI” (WSZiB Kraków), kategoria TECH. Tu jest to, o co pyta karta projektu: problem, działanie, wykorzystanie AI, testy i ograniczenia.An entry to the “Fake OFF – Critical thinking in the age of AI” competition (WSZiB Kraków), TECH category. Here is what the project form asks about: the problem, how it works, the use of AI, tests and limitations.

ProblemThe problem

W internecie codziennie trafiamy na fałszywe strony podszywające się pod znane marki, nagłówki-przynęty, artykuły z przekłamanymi faktami i obrazy z AI udające prawdziwe zdjęcia.Every day we run into fake sites impersonating well-known brands, bait headlines, articles with distorted facts, and AI images posing as real photos.

Zwykle zauważamy je za późno: po wpisaniu hasła, po kliknięciu albo po udostępnieniu fałszywki dalej. Fak3Buster ostrzega w chwili czytania strony i zawsze pokazuje, dlaczego coś uznał za podejrzane, żeby użytkownik mógł to ocenić sam.We usually notice too late: after typing a password, after clicking, or after sharing the fake. Fak3Buster warns while you read the page and always shows why it found something suspicious, so you can judge for yourself.

Jak działa, krok po krokuHow it works, step by step

Strona, którą czytaszThe page you read
Wtyczka: adres, nagłówki, akapity, obrazyExtension: address, headlines, paragraphs, images
Serwer Fak3Buster sprawdza każdą rzecz osobnoThe Fak3Buster server checks each item separately

Adres stronyPage address

Reguły (marka w obcej domenie, podejrzana końcówka typu .icu, słowa-wabiki), lista zaufanych domen i lista złośliwych adresów. Przy wynikach niejednoznacznych pomaga AI.Rules (a brand inside a foreign domain, a suspicious ending like .icu, lure words), a list of trusted domains and a list of malicious addresses. AI helps with ambiguous results.

URLhausGLM-5.3 Flash

NagłówkiHeadlines

Reguły wyłapujące typowe przynęty („nie uwierzysz”, „sami zobaczcie”) oraz ocena modelu językowego.Rules catching typical bait (“you won't believe”, “see for yourself”) plus a language model's score.

GLM-5.3 Flash

Fakty w artykuleFacts in the article

AI wybiera twierdzenia autora, serwer szuka dowodów w zaufanych źródłach (Wikipedia, fact-checkerzy, agencje prasowe), a AI porównuje twierdzenie ze źródłem. Serwer sam sprawdza, czy cytat z dowodu naprawdę jest w źródle.AI picks the author's claims, the server searches trusted sources for evidence (Wikipedia, fact-checkers, news agencies), and AI compares the claim with the source. The server itself verifies that the quoted evidence really is in the source.

GLM-5.3 FlashSearXNGWikipedia

ObrazyImages

Najpierw podpis pochodzenia C2PA (generator AI sam deklaruje w pliku, że stworzył obraz). Gdy go nie ma, serwer wysyła obraz do usługi OpenAI Content Provenance, która rozpoznaje obrazy z narzędzi OpenAI. Jeśli i ona nic nie znajdzie, ocenia go model rozpoznający obrazy AI, uruchomiony na naszym serwerze w formacie ONNX (lekki format modeli działający bez karty graficznej).First the C2PA provenance signature (the AI generator declares inside the file that it made the image). Without one, the server sends the image to the OpenAI Content Provenance service, which recognises images made with OpenAI tools. If that finds nothing too, an AI-image detection model running on our server in the ONNX format (a lightweight model format that runs without a graphics card) judges it.

C2PAOpenAIONNX

Wynik wraca na stronę: ostrzeżenie, plakietka, podświetlenie albo chip, zawsze z wyjaśnieniem.The result comes back to the page: a warning, a badge, a highlight or a chip, always with an explanation.

Wykorzystanie AIUse of AI

Narzędzie AIEtapDo czego
GLM-5.3 Flash przez OrcaRouter, zapasowo DeepSeek V4 Flashdziałanie produktuOcenia nagłówki, wybiera twierdzenia z artykułów i porównuje je ze źródłami, ocenia niejednoznaczne domeny. Gdy główny model zawiedzie, serwer używa zapasowego. Wcześniej korzystaliśmy z Gemini (Google).
haywoodsloan/ai-image-detector-deploydziałanie produktuModel rozpoznający obrazy wygenerowane przez AI. Przekonwertowaliśmy go do formatu ONNX, w którym działa na procesorze naszego serwera bez ciężkich bibliotek do uczenia maszynowego.
OpenAI Content Provenancedziałanie produktuUsługa OpenAI, do której serwer wysyła obraz bez podpisu C2PA wskazującego AI. Rozpoznaje tylko obrazy z narzędzi OpenAI; gdy nic nie znajdzie, ocenia nasz model.
Claude (Anthropic), w Claude CoderealizacjaNapisał kod serwera, wtyczki i testów oraz dokumentację, pod kierunkiem zespołu.
GPT (OpenAI)realizacjaDrugi, niezależny recenzent kodu.
AI toolStageUsed for
GLM-5.3 Flash via OrcaRouter, DeepSeek V4 Flash as fallbackin the productScores headlines, picks claims from articles and compares them with sources, judges ambiguous domains. When the main model fails, the server uses the fallback. We used Gemini (Google) earlier.
haywoodsloan/ai-image-detector-deployin the productA model that recognises AI-generated images. We converted it to the ONNX format, in which it runs on our server's CPU without heavy machine-learning libraries.
OpenAI Content Provenancein the productAn OpenAI service the server sends an image to when it has no C2PA signature pointing to AI. It only recognises images made with OpenAI tools; if it finds nothing, our model decides.
Claude (Anthropic), in Claude CodebuildingWrote the server, extension and test code and the documentation, directed by the team.
GPT (OpenAI)buildingA second, independent code reviewer.

Cały kod (serwer, wtyczka, testy) i dokumentację techniczną wygenerowała AI.All the code (server, extension, tests) and the technical documentation were generated by AI.

TestyTests

Na stronach przygotowanych do pokazu, na prawdziwych serwisach (onet.pl, wp.pl, interia.pl, rmf24.pl, bbc.com, konkret24) i na 120 ręcznie oznaczonych nagłówkach.On pages prepared for the demo, on real sites (onet.pl, wp.pl, interia.pl, rmf24.pl, bbc.com, konkret24) and on 120 hand-labelled headlines.

PrzykładOczekiwanieWynikZadziałało?
Domena steampowered-gift.icuOstrzeżenie: podszywanie się pod Steam„złośliwa”, 82/100 (marka w nazwie, końcówka .icu, słowo „gift”)Tak
Domena pko-bp-weryfikacja.onlineOstrzeżenie: podszywanie się pod PKO BPNajpierw 15/100, bez ostrzeżenia (marka niewykryta). Po dodaniu marki PKO: 72/100, „złośliwa”Po poprawce tak
13 rzetelnych domenBrak alarmu13/13 bez ostrzeżeniaTak
4 podróbki spoza list (np. paypa1-secure-login.com)OstrzeżenieTrzy „złośliwe” (ocena AI, 3–7 s), paypa1-… 78/100 z samych regułTak
Artykuł testowy: Wieża Eiffla „ukończona w 1999 roku”Czerwone podświetlenie z linkiem do Wikipedii„zmanipulowane” dla wieży, „potwierdzone” dla akapitu o Pałacu Kultury. Tekst z OCR bez polskich liter dawał „ok” (błąd)Częściowo: tak w trybie demo, błąd przy tekście z OCR
Prawdziwe artykuły: wp.pl, rmf24.pl, bbc.com, konkret24Brak fałszywych zgłoszeń0 zgłoszeń na 4 stronachTak, ale bez prawdziwego fałszu do wykrycia
120 nagłówków PL/EN (54 to clickbait), same regułyClickbait bez fałszywych alarmówCzęść testowa: 0 fałszywych alarmów, wykryte 23% clickbaitów (6 z 26)Częściowo
Nagłówki ze stron głównych (1145 PL, 785 EN), same regułyMało fałszywych alarmówWersja h3: 6 alarmów, wszystkie słuszne; tabloid dailymail 5/5 słusznychTak, ale na nagłówkach, na których strojono reguły
Galeria: obraz z C2PA, prawdziwe zdjęcie, ikona 32 pxChip tylko na obrazie C2PA, ikona pominiętaZgodnie z oczekiwaniem (test automatyczny w Chromium i Firefoksie)Tak
Model obrazów: 23 obrazy (12 prawdziwych, 11 AI)Rozpoznać AI, nie oskarżyć prawdziwych zdjęć21/23 poprawnie; 12/12 prawdziwych bez fałszywego alarmu; 9/11 obrazów AI wykrytychPrzeważnie tak, zbiór mały
CaseExpectedResultWorked?
Domain steampowered-gift.icuWarning: impersonating Steam“malicious”, 82/100 (brand in the name, .icu ending, the word “gift”)Yes
Domain pko-bp-weryfikacja.onlineWarning: impersonating PKO BPFirst 15/100, no warning (brand not detected). After adding the PKO brand: 72/100, “malicious”Yes, after a fix
13 reputable domainsNo alarm13/13 without a warningYes
4 fakes not on any list (e.g. paypa1-secure-login.com)WarningThree “malicious” (AI verdict, 3–7 s), paypa1-… 78/100 from rules aloneYes
Test article: Eiffel Tower “completed in 1999”Red highlight with a link to Wikipedia“manipulated” for the tower, “confirmed” for the Palace of Culture paragraph. OCR text without Polish letters returned “ok” (a bug)Partly: yes in demo mode, a bug with OCR text
Real articles: wp.pl, rmf24.pl, bbc.com, konkret24No false reports0 reports on 4 pagesYes, but no real falsehood to catch
120 PL/EN headlines (54 clickbait), rules onlyCatch clickbait without false alarmsTest split: 0 false alarms, 23% of clickbait caught (6 of 26)Partly
Front-page headlines (1145 PL, 785 EN), rules onlyFew false alarmsVersion h3: 6 alarms, all correct; tabloid dailymail 5/5 correctYes, but on the headlines the rules were tuned on
Gallery: C2PA image, real photo, 32 px iconChip only on the C2PA image, icon skippedAs expected (automated test in Chromium and Firefox)Yes
Image model: 23 images (12 real, 11 AI)Spot AI, don't accuse real photos21/23 correct; 12/12 real without a false alarm; 9/11 AI images caughtMostly, small set

Uczciwe ograniczeniaHonest limitations

  • Obraz to ok. 13 s pracy serweraAn image takes about 13 s of server time

    Model obrazów działa na procesorze słabego serwera, dlatego ocena jednego obrazu trwa ok. 13 s, a serwer przyjmuje najwyżej 6 obrazów na minutę z jednego adresu.The image model runs on a weak server's CPU, so one image takes about 13 s, and the server accepts at most 6 images per minute from one address.

  • Darmowe modele mają limityFree models have limits

    Darmowe modele przez OrcaRouter mają limity i bywają wolniejsze: ocena paczki nagłówków trwa ok. 8 s. Serwer ma też własny dzienny limit 100 zapytań do modelu; po jego wyczerpaniu clickbait oceniają same reguły.Free models via OrcaRouter have limits and can be slower: scoring a batch of headlines takes about 8 s. The server also has its own daily budget of 100 model requests; once it is used up, clickbait is scored by rules alone.

  • Reguły to tylko zapasRules are only a fallback

    Łapią jawne wzorce: na zbiorze testowym 23% clickbaitów, bez fałszywych alarmów. Marka spoza naszej listy może przejść niezauważona (tak było z PKO przed poprawką).They catch obvious patterns: 23% of clickbait on the test set, with no false alarms. A brand missing from our list can slip through (as PKO did before the fix).

  • AI się myliAI makes mistakes

    Wynik modelu obrazów to szacunek, nie dowód; większość serwisów usuwa podpis C2PA, a usługa OpenAI rozpoznaje tylko obrazy z narzędzi OpenAI. Model sprawdzaliśmy na 23 obrazach, głównie z Midjourney.The image model's score is an estimate, not proof; most sites strip the C2PA signature, and the OpenAI service only recognises images made with OpenAI tools. We tested the model on 23 images, mostly from Midjourney.

  • Fact-check częściej milczy, niż się myliFact-checking stays silent rather than guess

    Nie sprawdzi świeżych wiadomości (nie ma jeszcze źródeł), opinii, prognoz ani treści za paywallem. Część serwisów blokuje pobieranie.It can't check breaking news (no sources yet), opinions, forecasts or paywalled content. Some sites block fetching.

Z czego zbudowaneWhat it's built with

SerwerServer
  • Python 3.12
  • FastAPI
  • Pydantic
  • httpx
  • trafilatura
  • c2pa-python
  • onnxruntime
  • SearXNG
  • Docker
WtyczkaExtension
  • TypeScript
  • WXT
  • Manifest V3
  • Material 3
  • Mozilla Readability
TestyTests
  • pytest: ok. 350 testów serwerapytest: about 350 server tests
  • Vitest
  • Playwright
  • Puppeteer