Go to file
2026-03-26 16:30:25 +01:00
backend s 2026-03-26 16:13:58 +01:00
frontend Add backend, frontend, and project files 2026-03-26 15:27:31 +01:00
.gitignore Add backend, frontend, and project files 2026-03-26 15:27:31 +01:00
README.md readme 2026-03-26 16:30:25 +01:00

README.md

Tento súbor slúži ako dokumentácia.

Prehľad projektu

AI Fact Checker - full-stack webová aplikácia, ktorá overuje tvrdenia používateľov pomocou modelov NLI (Natural Language Inference). Systém prehľadáva web prostredníctvom služby SerpAPI, analyzuje úryvky z vyhľadávania z dôveryhodných zdrojov v porovnaní s tvrdeniami a vracia verdikty (Pravda/Nepravda/Nejednoznačné) spolu s nájdenými dôkazmi.

Technologický Stack

Backend (Python/Flask):

  • Flask REST API s CORS kompatibilitou
  • Strojové učenie: HuggingFace Transformers (RoBERTa, mDeBERTa-v3)
  • Preklad: deep_translator (Google Translate)
  • Databáza: SQLite s cache vrstvou
  • Vyhľadávanie: SerpAPI pre extrakciu výsledkov z Google

Frontend (React/Vite):

  • React 19 s Vite 7
  • React Router pre navigáciu medzi stránkami
  • Axios pre HTTP požiadavky
  • Vlastné CSS pre vizuálne témy a dizajn

Architektúra

factchecker/
├── backend/
│   ├── app.py          # Flask API, NLI logika, prepínanie modelov
│   ├── database.py     # SQLite cache, overené fakty, štatistiky
│   ├── .env            # SERPAPI_API_KEY (povinné)
│   └── venv/           # Virtuálne prostredie Pythonu
├── frontend/
│   ├── src/
│   │   ├── App.jsx     # Nastavenie routera
│   │   ├── main.jsx    # Vstupný bod pre React
│   │   ├── components/
│   │   │   └── Layout.jsx
│   │   └── pages/
│   │       ├── Home.jsx    # Hlavné UI pre fact-checking
│   │       └── About.jsx
│   └── package.json
└── factchecker.db      # SQLite databáza (vytvára sa automaticky)

Základné príkazy

Backend

cd backend
source venv/bin/activate  # alebo na Windows: venv\Scripts\activate
python app.py             # Spustí Flask server na porte 5000
python view_db.py         # Zobrazí obsah databázy v termináli

Frontend

cd frontend
npm install               # Nainštaluje závislosti
npm run dev               # Spustí Vite vývojový server

API Endpointy

  • POST /api/check - Overí tvrdenie (body: claim, language, dateFrom, dateTo, selectedSource, model)
  • GET /api/history - Získa históriu overovaní (query limit: limit počtu)
  • GET /api/stats - Získa štatistiky z databázy
  • POST /api/admin/add-fact - Pridá manuálne overený fakt (pre admina)

Modely

Dva NLI modely dostupné s rôznymi kompromismi:

  1. RoBERTa (ynie/roberta-large-snli_mnli_fever_anli_R1_R2_R3-nli) - Je rýchly, ale vyžaduje preklad vstupu do angličtiny.
  2. mDeBERTa (MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7) - Je najlepší a najpresnejší pre slovenčinu a natívne podporuje viaceré jazyky.

Schéma Databázy

  • fact_checks - Cashované (uložené) výsledky vrátane hashu tvrdenia, verdiktu, NLI hlasov, dôkazov a zdrojov.
  • verified_facts - Manuálne a napevno overené fakty (pridávané adminom).

Dôležité poznámky

  • Súbor .env musí obsahovať kľúč pre SerpAPI - nezahŕňajte/necommitujte ho do Gitu!
  • Modely sa načítavajú až na požiadanie. Prepnutie modelu v UI môže spustiť reset bežiaceho modelu a vymazanie RAM.
  • Slovenské tvrdenia sú pre model RoBERTa pred spustením NLI vždy automaticky prekladané. Model mDeBERTa zvláda slovenčinu natívne, bez potreby prekladu do angličtiny.
  • Výsledky vyhľadávania prechádzajú filtrom domén (whitelist vs. blacklist), primárne so zameraním na slovenské aj celosvetové spravodajské portály a inštitúcie.
  • Výsledky sa vždy ukladajú do cache, aby sa predišlo opakovaným a drahým volaniam vyhľadávacieho API pre rovnaké dotazy.

Návod na inštaláciu a spustenie

Ak si projekt práve vyklonoval z repozitára a chceš ho rozbehať lokálne, postupuj podľa týchto krokov:

1. Klonovanie repozitára a prerekvizity

Najprv si naklonuj projekt a presuň sa do hlavnej zložky:

git clone git@git.kemt.fei.tuke.sk:vd768er/fact_checker.git
cd factchecker

Poznámka: Pre beh projektu potrebuješ mať nainštalovaný Python (pre backend) a Node.js + npm (pre frontend).

2. Príprava a spustenie backendu (Umelá inteligencia a API)

Otvor si prvý terminál a prekopíruj tieto príkazy:

cd backend

# Vytvorenie a aktivácia virtuálneho prostredia (pre Windows)
python -m venv venv
venv\Scripts\activate
# Pre Mac/Linux zvoľ: source venv/bin/activate

# Inštalácia všetkých Python potrebných knižníc
pip install flask flask-cors transformers torch requests python-dotenv deep-translator

Ďalej musíš vytvoriť .env súbor v priečinku backend/. Vytvor ho ručne a nastav si v ňom kľúč pre vyhľadávanie cez Serp API (ak ho nemáš, vytvor si zdarma účet na serpapi.com):

SERPAPI_API_KEY=tvoj_tajny_api_kluc

Nakoniec backend spusti pomocou:

python app.py

(Server by mal teraz nabehnúť na adrese http://127.0.0.1:5000. Tento terminál nechaj bežať a nevypínaj.)

3. Príprava a spustenie frontendu (Rozhranie aplikácie)

Otvor si druhý, úplne nový preklikávací terminál / okno na pozadí, uisti sa že si v koreňovom priečinku factchecker a presuň sa do frontendu:

cd frontend

# Inštalácia Node.js závislostí z package.json
npm install

# Spustenie Vite vývojového servera
npm run dev

Ak všetko prebehne úspešne, terminál ti vyhodí odkaz (zvyčajne to býva http://localhost:5173/ alebo http://localhost:5174/). Otvor si ho v prehliadači a hotovo môžeš začať s Fact-Checkingom!