5.5 KiB
5.5 KiB
🤖 TwitchBot Controller - Architecture Centralisée
Vue d'ensemble
Le TwitchBot Controller a été refactorisé pour utiliser une architecture centralisée qui permet un contrôle complet depuis l'interface web. Cette nouvelle architecture résout les problèmes de synchronisation et de duplication observés dans les logs.
🏗️ Architecture
Composants principaux
-
Interface Web (
web_interface.py)- Contrôle central de tous les composants
- API REST pour la gestion des flux et composants
- Interface utilisateur moderne avec Bootstrap
-
BotController (classe dans
web_interface.py)- Gestion centralisée de tous les bots
- Contrôle des états et synchronisation
- Gestion des erreurs et récupération
-
Composants modulaires
- IA_generator : Génération automatique de réponses
- Control_Twitch : Envoi de messages sur Twitch
- RecordTwitch : Enregistrement audio des streams
- Subtitle_translation : Traitement des sous-titres
- TwitchChatBot : Connexion aux chats Twitch
🔧 Fonctionnalités
Contrôle depuis l'interface web
Gestion des flux
- ✅ Ajouter/supprimer des flux Twitch
- ✅ Activer/désactiver les flux
- ✅ Surveillance en temps réel
- ✅ Gestion des erreurs
Contrôle des composants
- ✅ IA Generator : Démarrage/arrêt depuis l'interface
- ✅ Control Twitch : Contrôle de l'envoi de messages
- ✅ Auto Subtitle : Génération automatique de sous-titres
- ✅ Auto Messages : Envoi automatique de messages
Gestion des utilisateurs
- ✅ Ajouter/modifier/supprimer des utilisateurs Twitch
- ✅ Gestion des tokens OAuth
- ✅ Sélection d'utilisateur pour l'envoi de messages
Configuration
- ✅ Gestion des prompts IA
- ✅ Configuration des paramètres
- ✅ Sauvegarde automatique
🚀 Démarrage
Prérequis
pip install flask flask-socketio requests pytmi
Configuration
-
Créez les fichiers de configuration :
config/config.json: Configuration généraleconfig/user.json: Utilisateurs Twitch
-
Configurez vos paramètres :
- Tokens OAuth Twitch
- Noms de canaux
- Prompts IA
Lancement
python start_web_interface.py
L'interface sera disponible sur : http://localhost:5000
📊 Interface utilisateur
Tableau de bord
- Statut des flux : Nombre de flux actifs
- Enregistrements : Flux avec enregistrement audio
- Connexions chat : Flux connectés aux chats
Contrôles principaux
- Générateur IA : Toggle pour démarrer/arrêter
- Contrôleur Twitch : Toggle pour l'envoi de messages
- Auto Subtitle : Génération automatique de sous-titres
- Auto Messages : Envoi automatique de messages
Gestion des flux
- Ajouter de nouveaux flux Twitch
- Activer/désactiver les flux
- Surveillance du statut en temps réel
- Gestion des erreurs
🔄 Flux de données
1. Enregistrement audio
RecordTwitch → Fichiers MP3 → Whisper → Sous-titres
2. Génération IA
Sous-titres → IA_generator → Réponses IA → Stockage
3. Envoi de messages
Stockage → Control_Twitch → Chat Twitch
🛠️ API Endpoints
Flux
GET /api/flux: Liste des fluxPOST /api/flux: Ajouter un fluxDELETE /api/flux/<id>: Supprimer un fluxPOST /api/flux/<id>/toggle: Activer/désactiver
Composants
POST /api/ia-generator/start: Démarrer IA GeneratorPOST /api/ia-generator/stop: Arrêter IA GeneratorPOST /api/control-twitch/start: Démarrer Control TwitchPOST /api/control-twitch/stop: Arrêter Control Twitch
Statut
GET /api/system-status: Statut de tous les composantsGET /api/status: Statut général
🔍 Résolution des problèmes
Problèmes résolus
-
Générations dupliquées ✅
- Contrôle centralisé de l'IA Generator
- Vérification des états avant génération
-
Messages dupliqués ✅
- Contrôle centralisé de Control Twitch
- Suppression automatique des messages envoyés
-
Synchronisation ✅
- États centralisés dans BotController
- Communication via API REST
-
Gestion des erreurs ✅
- Try/catch dans tous les composants
- Récupération automatique
Logs améliorés
Les logs sont maintenant plus clairs et informatifs :
[12:04:15] IA Generator démarré
[12:04:20] Control Twitch démarré
[12:04:25] Message envoyé: Réponse IA...
[12:04:30] Génération créée: Nouvelle réponse...
🔧 Maintenance
Redémarrage propre
# Arrêter tous les composants depuis l'interface
# Puis redémarrer l'application
python start_web_interface.py
Debug
- Logs détaillés dans la console
- Statut en temps réel dans l'interface
- Gestion des erreurs avec messages explicites
📈 Avantages de la nouvelle architecture
- Contrôle centralisé : Tous les composants sont gérés depuis l'interface web
- Synchronisation : Élimination des conflits et duplications
- Modularité : Chaque composant peut être démarré/arrêté indépendamment
- Observabilité : Statut en temps réel de tous les composants
- Maintenabilité : Code plus propre et mieux organisé
- Extensibilité : Facile d'ajouter de nouveaux composants
🎯 Utilisation recommandée
- Démarrage : Lancez l'interface web
- Configuration : Ajoutez vos flux et utilisateurs
- Activation : Démarrez les composants depuis l'interface
- Surveillance : Surveillez les statuts en temps réel
- Ajustement : Modifiez les paramètres selon vos besoins