38 lines
1.7 KiB
Markdown
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
|
|
);
|