Files
twitchBot-intelligent/README_ARCHITECTURE.md
T
2026-04-22 22:42:36 +02:00

191 lines
5.5 KiB
Markdown

# 🤖 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
1. **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
2. **BotController** (`twitch_bot/controller.py`)
- Gestion centralisée de tous les bots
- Contrôle des états et synchronisation
- Gestion des erreurs et récupération
3. **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
```bash
pip install flask flask-socketio requests pytmi
```
### Configuration
1. Créez les fichiers de configuration :
- `config/config.json` : Configuration générale
- `config/user.json` : Utilisateurs Twitch
2. Configurez vos paramètres :
- Tokens OAuth Twitch
- Noms de canaux
- Prompts IA
### Lancement
```bash
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 flux
- `POST /api/flux` : Ajouter un flux
- `DELETE /api/flux/<id>` : Supprimer un flux
- `POST /api/flux/<id>/toggle` : Activer/désactiver
### Composants
- `POST /api/ia-generator/start` : Démarrer IA Generator
- `POST /api/ia-generator/stop` : Arrêter IA Generator
- `POST /api/control-twitch/start` : Démarrer Control Twitch
- `POST /api/control-twitch/stop` : Arrêter Control Twitch
### Statut
- `GET /api/system-status` : Statut de tous les composants
- `GET /api/status` : Statut général
## 🔍 Résolution des problèmes
### Problèmes résolus
1. **Générations dupliquées**
- Contrôle centralisé de l'IA Generator
- Vérification des états avant génération
2. **Messages dupliqués**
- Contrôle centralisé de Control Twitch
- Suppression automatique des messages envoyés
3. **Synchronisation**
- États centralisés dans BotController
- Communication via API REST
4. **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
```bash
# 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
1. **Contrôle centralisé** : Tous les composants sont gérés depuis l'interface web
2. **Synchronisation** : Élimination des conflits et duplications
3. **Modularité** : Chaque composant peut être démarré/arrêté indépendamment
4. **Observabilité** : Statut en temps réel de tous les composants
5. **Maintenabilité** : Code plus propre et mieux organisé
6. **Extensibilité** : Facile d'ajouter de nouveaux composants
## 🎯 Utilisation recommandée
1. **Démarrage** : Lancez l'interface web
2. **Configuration** : Ajoutez vos flux et utilisateurs
3. **Activation** : Démarrez les composants depuis l'interface
4. **Surveillance** : Surveillez les statuts en temps réel
5. **Ajustement** : Modifiez les paramètres selon vos besoins