zkt25/sk1
2025-04-29 23:08:17 +00:00
..
backend Nahrát soubory do „sk1/backend“ 2025-04-29 22:47:25 +00:00
frontend Nahrát soubory do „sk1/frontend“ 2025-04-29 22:46:54 +00:00
Dockerfile Nahrát soubory do „sk1“ 2025-04-29 22:48:23 +00:00
history.json Nahrát soubory do „sk1“ 2025-04-29 22:48:23 +00:00
package-lock.json Nahrát soubory do „sk1“ 2025-04-29 22:48:23 +00:00
package.json Nahrát soubory do „sk1“ 2025-04-29 22:48:23 +00:00
prepare-app-cloud.sh Nahrát soubory do „sk1“ 2025-04-29 22:48:23 +00:00
README.md Aktualizovat sk1/README.md 2025-04-29 23:08:17 +00:00
remove-app-cloud.sh Nahrát soubory do „sk1“ 2025-04-29 22:48:23 +00:00

Hate Speech Detector

1. Opis čo robí aplikácia

Aplikácia Hate Speech Detector slúži na analýzu zadaného textu s cieľom určiť, či ide o nenávistný alebo neutrálny obsah. Využíva trénovaný model umelej inteligencie na klasifikáciu textov. Používateľ môže cez webové rozhranie zadať ľubovoľný text a aplikácia okamžite vráti klasifikáciu spolu s možnosťou zobrazenia histórie.

Všetky predikcie sa ukladajú do databázy PostgreSQL a zároveň sa synchronizujú do súboru history.json, ktorý frontend využíva ako zdroj na zobrazenie histórie. Okrem predikcie aplikácia poskytuje aj REST API na správu histórie a jej vymazanie. Webové rozhranie aj API sú zabezpečené cez HTTPS.

Model bol trénovaný na slovenskom datasete s využitím metódy LoRA (PEFT), čo umožnilo efektívne doladenie modelu s minimálnym počtom trénovateľných parametrov.


2. Slovný opis použitého verejného klaudu a objektov

  • Cloud: Google Cloud Platform (GCP)

  • Služby GCP:

    • Google Cloud Run: hostovanie kontajnera s Flask backendom a React frontendom
    • Artifact Registry: uložisko pre Docker image
    • Cloud SQL (PostgreSQL): relačná databáza na uchovanie predikcií
  • Docker objekty:

    • Multistage Dockerfile:
      • node:18 na build React aplikácie
      • python:3.10-slim pre backend (Flask + transformers)
      • Frontend sa kopíruje do /app/static/
  • Trvalý zväzok:

    • Cloud SQL PostgreSQL a history.json

Štruktúra tabuľky history:

CREATE TABLE IF NOT EXISTS history (
    id SERIAL PRIMARY KEY,
    text TEXT NOT NULL,
    prediction TEXT NOT NULL,
    timestamp TIMESTAMP NOT NULL
);```