diff --git a/sk1/README.md b/sk1/README.md index e69de29..06e4863 100644 --- a/sk1/README.md +++ b/sk1/README.md @@ -0,0 +1,37 @@ +# 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`: +```sql +CREATE TABLE IF NOT EXISTS history ( + id SERIAL PRIMARY KEY, + text TEXT NOT NULL, + prediction TEXT NOT NULL, + timestamp TIMESTAMP NOT NULL +);