# đŸ€– 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/` : Supprimer un flux - `POST /api/flux//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 d’un flux - `GET /api/subtitles/last?flux_id=...` : Dernier sous-titre “utile” d’un 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