bakalarka_praca/telegram_bot
2025-05-20 11:25:15 +00:00
..
sql Nahrát soubory do „telegram_bot/sql“ 2025-05-20 11:02:04 +00:00
static Nahrát soubory do „telegram_bot/static“ 2025-05-20 11:01:20 +00:00
.env Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
bot.py Aktualizovat telegram_bot/bot.py 2025-05-20 11:04:30 +00:00
deployment.yaml Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
Dockerfile Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
flask-web.yaml Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
log.txt Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
prepare-app.sh Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
README.md Přidat telegram_bot/README.md 2025-05-20 11:25:15 +00:00
requirements.txt Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
service.yaml Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
start-app.sh Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
statefulset.yaml Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
stop-app.sh Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00
web_app.py Nahrát soubory do „telegram_bot“ 2025-05-20 11:00:55 +00:00

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:

  1. Telegram Bot: Interceptuje správy v skupine a pomocou trénovaného LLM modelu klasifikuje, či ide o nenávistnú reč.
  2. MySQL databáza: Ukladá údaje o používateľoch, správach a čase incidentu.
  3. 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:

./prepare-app.sh
  • Zostaví Docker image s aplikáciou.
  • Pushne ho do Docker Hub repozitára.

2. Spustenie aplikácie:

./start-app.sh
  • Vytvorí Kubernetes objekty.
  • Spustí port-forwarding pre Flask web na localhost:8888.

3. Pozastavenie (port-forward):

pkill -f "kubectl port-forward"
  • Zastaví dočasný prístup cez port-forward.

4. Odstránenie aplikácie:

./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č:

http://localhost:8888
  • 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