No description
Find a file
2026-06-17 19:47:04 +02:00
brain chore: nettoyage .gitignore - retrait venv, __pycache__, .env, data, logs, modèles du tracking 2026-06-16 20:40:37 +02:00
commandes chore: nettoyage .gitignore - retrait venv, __pycache__, .env, data, logs, modèles du tracking 2026-06-16 20:40:37 +02:00
core chore: nettoyage .gitignore - retrait venv, __pycache__, .env, data, logs, modèles du tracking 2026-06-16 20:40:37 +02:00
memoires fix: mise à jour mémoire BETA 2026-06-17 19:47:04 +02:00
.gitignore chore: nettoyage .gitignore - retrait venv, __pycache__, .env, data, logs, modèles du tracking 2026-06-16 20:40:37 +02:00
main.py chore: nettoyage .gitignore - retrait venv, __pycache__, .env, data, logs, modèles du tracking 2026-06-16 20:40:37 +02:00
README.md chore: nettoyage .gitignore - retrait venv, __pycache__, .env, data, logs, modèles du tracking 2026-06-16 20:40:37 +02:00
requirements.txt fix: gpt-oss:20b ollama, streaming, tableaux JSON, recherche flexible salons/categories 2026-06-13 14:46:02 +00:00
test_bot.py chore: nettoyage .gitignore - retrait venv, __pycache__, .env, data, logs, modèles du tracking 2026-06-16 20:40:37 +02:00
TODO.md Voice et bot modif 2026-06-16 17:09:34 +00:00

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:20b disponible 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 :

  1. Se connecter à Ollama
  2. Initialiser tous les composants (mémoire, modération, vocal)
  3. Se connecter à Discord
  4. 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_CHANNEL
  • CREATE_ROLE, DELETE_ROLE, ADD_ROLE_TO_USER, REMOVE_ROLE_FROM_USER
  • CREATE_CATEGORY, DELETE_CATEGORY, MODIFY_CATEGORY, RENAME_CATEGORY
  • KICK, BAN, UNBAN, MUTE, UNMUTE, TIMEOUT, WARN, PURGE
  • JOIN_VOICE, LEAVE_VOICE
  • ALERT, INSIGHT, FORGET_USER, READ_LOGS
  • SEND_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

  1. Vérifier les logs dans data/bot.log
  2. Activer le mode debug : LOG_LEVEL=DEBUG
  3. Vérifier qu'Ollama est actif : ollama list