No description
| brain | ||
| commandes | ||
| core | ||
| memoires | ||
| .gitignore | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
| test_bot.py | ||
| TODO.md | ||
Superviseur Bot (Bêta)
Bot Discord IA d'assistance et de modération avancée, utilisant Ollama pour l'inférence LLM locale.
Fonctionnalités
- IA conversationnelle : Répond aux questions et exécute des actions sur Discord via JSON
- Modération silencieuse : Scan de toxicité de chaque message via LLM en arrière-plan
- Gestion vocale : Transcription Whisper en temps réel + détection de mots-clés
- Mémoire utilisateur : Historique par utilisateur avec résumé automatique (via LLM)
- Dispatch d'insights : Coordination staff avec boutons d'acceptation Discord
- RGPD : Purge automatique des données > 30 jours
Installation
Prérequis
- Python 3.10+
- Ollama installé et en cours d'exécution (https://ollama.com)
- Modèle
gpt-oss:20bdisponible dans Ollama
Dépendances
pip install -r requirements.txt
Configuration Ollama
# Pull le modèle dans Ollama
ollama pull gpt-oss:20b
Configuration
Créer un fichier .env à la racine du dossier beta/ :
# Discord
DISCORD_TOKEN=your_discord_bot_token
GUILD_ID=your_guild_id
# LLM (Ollama)
OLLAMA_MODEL=gpt-oss:20b
OLLAMA_BASE_URL=http://localhost:11434
# Staff
ADMIN_IDS=123456789,987654321
PRIMARY_ASSETS_IDS=111222333,444555666
# Channel d'introspection
INTROSPECTION_CHANNEL_ID=123456789
Utilisation
cd beta
python main.py
Le bot va :
- Se connecter à Ollama
- Initialiser tous les composants (mémoire, modération, vocal)
- Se connecter à Discord
- Traiter les messages
Architecture
beta/
├── main.py # Point d'entrée
├── core/
│ ├── bot.py # Classe Beta (événements, orchestration)
│ ├── llm.py # Gestionnaire LLM (Ollama API)
│ ├── action_executor.py # Routage des actions IA → Discord
│ ├── action_router.py # (legacy, redirige vers action_executor)
│ ├── response_handler.py # Nettoyage, parsing JSON, envoi réponses
│ ├── log_parser.py # Parsing des logs d'actions
│ ├── content.py # Préparation du contenu pour le LLM
│ ├── context_builder.py # Construction du contexte serveur
│ ├── dispatcher.py # Dispatch d'insights vers staff
│ ├── voice.py # Gestion vocale + Whisper
│ ├── task_manager.py # Tâches de fond
│ ├── messaging.py # Envoi de messages
│ └── permissions.py # Whitelist et permissions
├── brain/
│ ├── memory.py # Mémoire utilisateur (wrapper)
│ ├── memoire.py # Mémoire utilisateur (implémentation, JSON/Redis + cache)
│ ├── moderation.py # Modération IA + SQLite
│ └── infos_serveurs.py # Infos serveur
├── commandes/
│ ├── security/ # kick, ban, mute, warn, purge...
│ ├── salons/ # Créer, supprimer, modifier salons
│ ├── roles/ # Créer, supprimer, modifier rôles
│ ├── categories/ # Créer, supprimer, modifier catégories
│ └── autres/ # Config, status, ping, etc.
├── data/ # Logs, DB SQLite
└── memoires/ # Historique utilisateur (JSON, par guild)
Actions IA
Le bot peut exécuter les actions suivantes via LLM :
CREATE_CHANNEL,DELETE_CHANNEL,MODIFY_CHANNEL,RENAME_CHANNEL,MOVE_CHANNELCREATE_ROLE,DELETE_ROLE,ADD_ROLE_TO_USER,REMOVE_ROLE_FROM_USERCREATE_CATEGORY,DELETE_CATEGORY,MODIFY_CATEGORY,RENAME_CATEGORYKICK,BAN,UNBAN,MUTE,UNMUTE,TIMEOUT,WARN,PURGEJOIN_VOICE,LEAVE_VOICEALERT,INSIGHT,FORGET_USER,READ_LOGSSEND_MESSAGE,HELP,STATUS
Variables d'environnement
| Variable | Description | Défaut |
|---|---|---|
DISCORD_TOKEN |
Token du bot Discord | requis |
GUILD_ID |
ID du serveur principal | requis |
OLLAMA_MODEL |
Nom du modèle Ollama | gpt-oss:20b |
OLLAMA_BASE_URL |
URL de l'API Ollama | http://localhost:11434 |
ADMIN_IDS |
IDs des administrateurs (virgule) | — |
PRIMARY_ASSETS_IDS |
IDs du staff (virgule) | — |
INTROSPECTION_CHANNEL_ID |
Channel de logs internes | — |
TIMEZONE |
Fuseau horaire | Europe/Paris |
SUPERVISEUR_MAX_CONCURRENT |
Requêtes LLM simultanées max | 4 |
SUPERVISEUR_MEM_DIR |
Répertoire des mémoires | memoires |
SUPERVISEUR_MAX_RECENT |
Messages avant résumé | 20 |
SUPERVISEUR_REDIS_URL |
URL Redis (optionnel) | — |
LOG_LEVEL |
Niveau de log | INFO |
Tests
# Tests unitaires
pytest test_bot.py -v
# Tests mémoire
python -m brain.memoire
Monitoring
Le bot inclut des métriques intégrées :
- Nombre de requêtes LLM (succès/échecs)
- Temps de réponse moyen
- Métriques mémoire (hits/misses cache, lectures/écritures)
Sécurité
- Local uniquement : Pas d'appels réseau externes
- RGPD : Purge automatique des données > 30 jours
- Permissions : Vérification admin pour les actions destructrices
- Whitelist : Système de niveaux de permissions
Support
- Vérifier les logs dans
data/bot.log - Activer le mode debug :
LOG_LEVEL=DEBUG - Vérifier qu'Ollama est actif :
ollama list