4.0 KiB
4.0 KiB
Hate Speech Bot – Dokumentácia
🧠 Opis aplikácie
Hate Speech Bot je kompletný systém na automatickú detekciu nenávistnej reči v prostredí Telegramu. Aplikácia slúži ako monitorovací a analytický nástroj, ktorý umožňuje:
- Automaticky zachytiť a analyzovať správy používateľov v skupinových chatoch.
- V prípade detekcie nenávistného prejavu zaznamená informáciu o používateľovi a správe do databázy.
- Vizualizuje porušovateľov cez webové rozhranie v reálnom čase.
Komponenty systému:
- Telegram Bot: Interceptuje správy v skupine a pomocou trénovaného LLM modelu klasifikuje, či ide o nenávistnú reč.
- MySQL databáza: Ukladá údaje o používateľoch, správach a čase incidentu.
- Webová aplikácia (Flask): Zobrazuje tabuľku s porušeniami, automaticky aktualizovanú každých 5 sekúnd.
🧱 Zoznam použitých Docker kontajnerov
Kontajner | Popis |
---|---|
tetianamohorian/hate-speech-bot | Obsahuje Telegram bota, klasifikačný model (napr. fine-tuned BERT), a Flask frontend. |
mysql:8 | Relačný databázový systém pre ukladanie záznamov o porušovateľoch. |
☸️ Zoznam Kubernetes objektov
Objekt | Popis |
---|---|
Namespace: botspace | Izolovaný priestor pre všetky objekty súvisiace s aplikáciou. |
Deployment: bot-deployment | Nasadzuje kontajner s botom. |
Deployment: flask-web | Nasadzuje Flask webserver. |
StatefulSet: mysql | Zabezpečuje perzistentný a konzistentný chod MySQL databázy. |
PersistentVolume | Uchováva fyzické dáta databázy mimo podu. |
PersistentVolumeClaim | Žiadosť o diskový priestor pre databázu. |
Service: mysql | Vnútorná služba pre prístup k databáze. |
Service: flask-service | Port-forward pre sprístupnenie webu. |
ConfigMap: init-sql | Obsahuje SQL skripty na prvotnú inicializáciu schémy. |
Secret: bot-secret | Bezpečné uloženie citlivých údajov ako je Telegram token. |
🌐 Virtuálne siete a úložiská
- Všetky pody komunikujú cez internú sieť v botspace, čím sa znižuje riziko únikov údajov.
- PersistentVolume pripojený k MySQL zaručuje zachovanie dát aj po reštarte podu.
⚙️ Konfigurácia kontajnerov
- Flask Web: Beží na porte 5000, ktorý je dostupný cez flask-service. Obnovuje sa každých 5 sekúnd pomocou JavaScriptu (AJAX fetch).
- Telegram Bot: Spustený v samostatnom threade, číta správy, klasifikuje ich pomocou PyTorch modelu (alebo HuggingFace Transformers), a zapisuje výsledok do databázy.
- MySQL: Inicializovaná pomocou initContainer, ktorý spustí skript uložený v ConfigMap.
🚀 Návod na použitie
1. Príprava aplikácie:
bash ./prepare-app.sh
- Zostaví Docker image s aplikáciou.
- Pushne ho do Docker Hub repozitára.
2. Spustenie aplikácie:
bash ./start-app.sh
- Vytvorí Kubernetes objekty.
- Spustí port-forwarding pre Flask web na localhost:8888.
3. Pozastavenie (port-forward):
bash pkill -f "kubectl port-forward"
- Zastaví dočasný prístup cez port-forward.
4. Odstránenie aplikácie:
bash ./stop-app.sh
- Zmaže celý botspace, vrátane databázy a všetkých služieb.
🌍 Prístup k webovej aplikácii
Po úspešnom spustení aplikácie otvorte webový prehliadač:
- Zobrazí sa tabuľka s informáciami o porušovateľoch.
- Dáta sa aktualizujú automaticky každých 5 sekúnd bez potreby obnoviť stránku.
📦 Použité technológie
- Python, Flask, PyTorch / Transformers – analýza a klasifikácia textov
- Docker, Docker Hub – kontajnerizácia
- Kubernetes – orchestrácia, škálovanie a sieťová izolácia
- MySQL – relačné databázové úložisko
- JavaScript (AJAX) – aktualizácia frontendu v reálnom čase тоже самое сделай