LLM Lab
Un laboratoire pour tester et comparer différents modèles de langage (LLM) via Ollama.
Fonctionnalités
- Modèles intégrés : Support pour Mistral 7B, CodeLlama 13B et Llama2 13B via Ollama
- Agents spécialisés : Agents configurés pour différentes tâches (code, documentation, gestion de projet...)
- Interface graphique de chat : Interface visuelle complète pour interagir avec les agents et personnaliser les paramètres
- Moniteur système : Interface graphique pour surveiller les ressources système, Ollama et GPU
- Interface CLI : Interface en ligne de commande simple pour interagir avec les agents
Modèles disponibles
Ce projet prend en charge les modèles suivants :
- Mistral 7B :
mistral:latestvia Ollama - pour des tests rapides et la documentation - CodeLlama 13B Python :
codellama:13b-pythonvia Ollama - pour le développement et le code - Llama2 13B :
llama2:13bvia Ollama - pour la gestion de connaissances et de projet
Agents spécialisés
- cursor : Agent de programmation (CodeLlama) pour Python, JavaScript et développement web
- obsidian : Agent de gestion de connaissances (Llama2) pour l'organisation d'informations
- test : Agent de test rapide (Mistral) pour vérifier rapidement les fonctionnalités
- python : Expert Python (CodeLlama)
- webdev : Expert développement web (CodeLlama)
- projectmanager : Chef de projet (Llama2)
- documentaliste : Spécialiste en documentation (Mistral)
Installation
Prérequis
- Python 3.8+
- Ollama installé et en cours d'exécution sur
localhost:11434 - Les modèles correspondants installés dans Ollama
Installation des modèles Ollama
# Installation des modèles
ollama pull mistral:latest
ollama pull codellama:13b-python
ollama pull llama2:13b
Configuration de l'environnement
Utilisez le script de configuration automatique :
# Exécuter le script de configuration
./setup_env.sh
Ce script va :
- Vérifier et installer les dépendances système nécessaires (venv, tkinter)
- Créer un nouvel environnement virtuel Python
- Installer toutes les dépendances requises
- Configurer les scripts pour une utilisation facile
Installation manuelle (alternative)
Si vous préférez l'installation manuelle :
# Créer un environnement virtuel
python3 -m venv llmlab
# Activer l'environnement virtuel
source llmlab/bin/activate
# Installer les dépendances
pip install -r requirements.txt
# Installer tkinter si nécessaire (au niveau du système)
sudo apt install python3-tk
Utilisation
Utilisation avec le script de lancement
Le moyen le plus simple d'utiliser LLM Lab est d'utiliser le script de lancement run.sh :
# Afficher l'aide
./run.sh help
# Lister les agents disponibles
./run.sh list
# Lancer l'interface graphique de chat
./run.sh gui
# Lancer le chat en ligne de commande avec un agent spécifique
./run.sh chat cursor # Agent de programmation
./run.sh chat obsidian # Agent de gestion de connaissances
./run.sh chat test # Agent de test rapide
# Lancer le moniteur système
./run.sh monitor
Utilisation directe
Si vous préférez utiliser directement les scripts Python après avoir activé l'environnement virtuel :
# Activer l'environnement virtuel
source llmlab/bin/activate
# Lancer l'interface graphique de chat
./chat_gui.py
# Lister les agents disponibles
./chat.py --list
# Lancer le chat en ligne de commande avec un agent
./chat.py cursor
# Lancer le moniteur système
./monitor.py
Interface graphique de chat
L'interface graphique de chat offre de nombreuses fonctionnalités avancées :
- Sélection d'agent : Choisissez parmi tous les agents disponibles
- Personnalisation des modèles : Changez le modèle utilisé par un agent
- Paramètres ajustables : Modifiez tous les paramètres de génération (température, top-p, etc.)
- Presets : Appliquez des configurations prédéfinies (Créatif, Précis, Code, etc.)
- Sauvegarde et chargement : Enregistrez et chargez des conversations
- Exportation : Exportez vos conversations en markdown, texte ou JSON
Pour lancer l'interface graphique :
./run.sh gui
Moniteur système
Le moniteur système fournit une interface graphique pour surveiller :
- Ressources système : CPU, RAM, disque
- Serveur Ollama : État, modèles disponibles, tailles
- GPU NVIDIA (si disponible) : Utilisation, mémoire, température, processus
- Journaux d'activité : Logs en temps réel
Pour l'utiliser :
./run.sh monitor
Structure du projet
core/: Classes de base et implémentations des modèlesbase_llm.py: Classe de base pour tous les modèles LLMfactory.py: Factory pour créer des instances de modèlemistral7b.py: Implémentation du modèle Mistral 7Bcodellama13b_python.py: Implémentation du modèle CodeLlama 13B Pythonllama2_13b.py: Implémentation du modèle Llama2 13B
agents/: Configuration des agents spécialisésroles.py: Définition des différents agents et leurs paramètres
utils/: Outils et utilitairesagent_manager.py: Gestionnaire pour créer et configurer les agentssystem_monitor.py: Moniteur de ressources systèmechat_ui.py: Interface graphique de chat
tests/: Tests unitaires et d'intégrationexamples/: Exemples d'utilisationlogs/: Logs des résultats de génération (créé automatiquement)chat_history/: Historique des conversations (créé automatiquement)saved_params/: Paramètres personnalisés sauvegardés (créé automatiquement)
Personnalisation
Ajouter un nouvel agent
Pour ajouter un nouvel agent, modifiez le fichier agents/roles.py et ajoutez une nouvelle entrée au dictionnaire AGENTS :
"mon_agent": {
"model": "mistral:latest", # Modèle à utiliser
"system_prompt": (
"Description du rôle de l'agent..."
),
"params": {
"temperature": 0.7,
"top_p": 0.9,
# Autres paramètres...
}
}
Ajouter un nouveau modèle
Pour ajouter un nouveau modèle LLM :
- Créez une nouvelle classe dans
core/(par exemplecore/nouveau_modele.py) - Ajoutez le modèle au registre dans
core/factory.py - Mettez à jour la documentation et les tests