Files
twitchBot-intelligent/README_ARCHITECTURE.md
2026-04-28 21:06:33 +02:00

210 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🤖 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
- **InteractionChatProcessor** : Règles mentions @ (réponse / TGPT / clip)
- **SubtitleRulesProcessor** : Règles sur sous-titres (clip / message)
## 🔧 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
- ✅ Options par flux : `send_messages`, `enable_ia`
#### 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
-**Clips (Helix)** : Création manuelle + actions via règles
#### 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
```
### 4. Règles
```
Chat (mentions @) → InteractionChatProcessor → (réponse | TGPT | clip)
Sous-titres → SubtitleRulesProcessor → (clip | message)
```
## 🛠️ 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
### Clips
- `POST /api/clips/create` : Créer un clip (Helix)
### Sous-titres
- `GET /api/subtitles?flux_id=...` : Sous-titres dun flux
- `GET /api/subtitles/last?flux_id=...` : Dernier sous-titre “utile” dun flux
- `GET/POST /api/subtitles/rules/config` : Config règles sous-titres
- `GET /api/subtitles/rules/log` : Logs règles sous-titres
## 🔍 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