update
This commit is contained in:
@@ -0,0 +1,191 @@
|
||||
# 🤖 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** (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
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user