Files
twitchBot-intelligent/README_ARCHITECTURE.md
T
gpatruno 68cf59ae75 update
2025-09-06 17:26:38 +02:00

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

  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

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

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

# 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