zkt25/sk1/README.md

38 lines
1.7 KiB
Markdown

# 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
);