update update

This commit is contained in:
gpatruno
2026-04-28 21:06:26 +02:00
parent 7b2135bfed
commit b4254c9e06
28 changed files with 2032 additions and 547 deletions
+39 -6
View File
@@ -8,8 +8,11 @@ Bot Twitch qui enregistre laudio dun stream, le transcrit en texte, analys
- Transcription / alignement temporel (workflow prévu avec [WhisperX](https://github.com/m-bain/whisperX)).
- Génération de réponses et stockage des générations (fichiers JSON sous `storage/`).
- Lecture et envoi sur le chat Twitch (OAuth, utilisateurs dans `config/user.json`).
- **Interaction chat (mentions)** : si un viewer mentionne un des comptes enregistrés (ex: `@exoticnaturees`), le bot peut répondre automatiquement via **réponses préenregistrées** et **règles conditionnelles** (page “Interaction chat”).
- **Interface web** (Flask + Socket.IO) : gestion des flux, toggles IA / contrôle Twitch, sous-titres automatiques, etc.
- **Interaction chat (mentions)** : si un viewer mentionne un des comptes enregistrés (ex: `@exoticnaturees`), le bot peut répondre automatiquement via **réponses**, **TGPT**, ou **création de clip** (via règles).
- **Clips** : création manuelle de clips via lAPI Helix (page “Clips”) + actions “Créer un clip” dans les règles (Interaction chat / Sous-titres).
- **Sous-titres multi-flux** : stockage séparé par flux + sélection du flux dans longlet “Sous-titres”.
- **Règles sur sous-titres** : déclencher des actions (clip / message) quand un sous-titre contient un mot/texte.
- **Interface web** (Flask + Socket.IO) : gestion des flux, sous-titres, règles, prompts IA, etc.
Larchitecture détaillée des routes et composants est décrite dans [README_ARCHITECTURE.md](README_ARCHITECTURE.md). Linterface utilisateur côté navigateur est décrite dans [README_WEB_INTERFACE.md](README_WEB_INTERFACE.md).
@@ -55,8 +58,21 @@ pip install -r requirements.txt
Avant de lancer linterface, créez ou complétez au minimum :
- `config/config.json` — paramètres du bot (chemins, prompts, etc.).
- `config/user.json` — utilisateurs Twitch pour lenvoi des messages.
- `config/config.json` — paramètres du bot (prompts, limites, **`twitch_client_id`** pour Helix clips).
- `config/user.json` — utilisateurs Twitch (OAuth) pour envoyer des messages et appeler Helix (clips).
#### Twitch Client-ID (Helix)
Pour créer des clips (page “Clips” + règles “Créer un clip”), ajoutez :
- `twitch_client_id` dans `config/config.json`
#### Scopes OAuth requis
- **Envoyer des messages chat** : `chat:edit` (souvent + `chat:read`)
- **Créer des clips** : `clips:edit`
Astuce : vous pouvez générer **un seul token** avec les scopes `clips:edit chat:edit chat:read` et le mettre dans `config/user.json`.
Le script `start_web_interface.py` vérifie la présence de ces fichiers et crée les dossiers `storage/`, `record/`, `in_record/` si besoin.
@@ -85,9 +101,26 @@ Linterface écoute par défaut sur **http://0.0.0.0:5000** (voir `start_web_i
- `storage/interaction_chat_config.json`
- `storage/interaction_chat_log.json`
### Mode TGPT
### Mode TGPT + Actions de règles
- Le mode **TGPT** est disponible: il envoie le message du viewer à `tgpt` avec un **préprompt** (global ou par règle), puis renvoie la réponse.
- Le mode **TGPT** est disponible : il envoie le message du viewer à `tgpt` avec un **préprompt** (global ou par règle), puis renvoie la réponse.
- Les règles peuvent aussi déclencher laction **Créer un clip**.
## Sous-titres (multi-flux) + règles
- Chaque flux écrit ses sous-titres dans un fichier séparé : `storage/subtitle_data__<channel>.json`.
- Longlet **Sous-titres** permet de choisir le flux à afficher.
- Les règles “Sous-titres → actions” sont stockées sous :
- `storage/subtitle_rules_config.json`
- `storage/subtitle_rules_log.json` (créé après la 1ère exécution)
## Flux : options par flux
Lors de lajout dun flux dans linterface web, vous pouvez configurer :
- **Enregistrer laudio du stream**
- **Autoriser lenvoi de messages sur ce stream** (bloque lenvoi auto et les actions “message” de ce flux)
- **Activer génération TGPT (IA) à partir des sous-titres** (si OFF : pas dIA_generator et pas denvoi auto basé sur TGPT)
Mode terminal sans interface web :