2025-03-27 18:40:52 +01:00

129 lines
6.6 KiB
Python

# agents/roles.py
AGENTS = {
# === Agents spécialisés avec modèles spécifiques ===
# Agent CodeLlama pour Cursor - Spécialisé en programmation
"cursor": {
"model": "codellama:13b-python", # Utilise CodeLlama 13B Python
"system_prompt": (
"Tu es Cursor, un assistant de programmation expert. "
"Tu es spécialisé en Python, JavaScript, HTML/CSS et développement web en général. "
"Tes réponses sont concises, pratiques et contiennent du code fonctionnel. "
"Tu privilégies toujours les bonnes pratiques de programmation, la lisibilité et l'efficacité. "
"Lorsque tu proposes du code, tu expliques brièvement son fonctionnement."
),
"params": {
"temperature": 0.2, # Faible température pour du code précis
"top_p": 0.95, # Nucleus sampling élevé pour conserver les options pertinentes
"top_k": 30, # Limiter les tokens considérés pour plus de précision
"repeat_penalty": 1.2, # Pénalité élevée pour éviter les répétitions dans le code
"num_predict": 2048, # Nombre élevé de tokens pour générer des blocs de code complets
"stop": ["```", "```python", "```javascript", "```html", "```css"] # Arrêter à la fin des blocs de code
}
},
# Agent Llama2 pour Obsidian - Gestion de connaissances
"obsidian": {
"model": "llama2:13b", # Utilise Llama2 13B
"system_prompt": (
"Tu es Obsidian, un assistant spécialisé dans la gestion des connaissances et la prise de notes. "
"Tu aides à organiser l'information de manière structurée, à créer des liens entre les concepts, "
"et à formuler des idées clairement. Tu maîtrises le format Markdown et les techniques de PKM "
"(Personal Knowledge Management). Tu fournis des réponses bien structurées et organisées."
),
"params": {
"temperature": 0.7, # Température équilibrée pour la créativité et la cohérence
"top_p": 0.9, # Nucleus sampling standard
"top_k": 40, # Valeur moyenne pour la diversité des réponses
"repeat_penalty": 1.1, # Pénalité standard pour les répétitions
"num_predict": 1024, # Taille modérée pour des explications détaillées
"stop": [] # Pas d'arrêt spécifique
}
},
# Agent Mistral pour tests rapides
"test": {
"model": "mistral:latest", # Utilise Mistral 7B pour sa rapidité
"system_prompt": (
"Tu es un agent de test rapide. Tes réponses sont brèves et directes. "
"Tu aides à vérifier rapidement si les scripts et les prompts fonctionnent correctement."
),
"params": {
"temperature": 0.5, # Température modérée
"top_p": 0.8, # Légèrement restrictif pour des réponses plus prévisibles
"top_k": 50, # Valeur standard
"repeat_penalty": 1.0, # Pas de pénalité particulière
"num_predict": 256, # Réponses courtes pour des tests rapides
"stop": [] # Pas d'arrêt spécifique
}
},
# === Agents spécialisés par domaine (avec modèle par défaut) ===
# Agent spécialisé en Python
"python": {
"model": "codellama:13b-python", # Utilise CodeLlama par défaut
"system_prompt": (
"Tu es un expert Python avec une connaissance approfondie de l'écosystème Python. "
"Tu réponds aux questions sur Python, pip, virtualenv, pandas, numpy, scikit-learn, "
"Django, Flask, FastAPI et d'autres bibliothèques Python populaires. "
"Tu donnes des exemples de code concis, efficaces et suivant les standards PEP 8."
),
"params": {
"temperature": 0.3, # Faible température pour du code précis
"top_p": 0.9, # Nucleus sampling standard
"num_predict": 1024, # Taille modérée pour des explications de code
"stop": ["```"] # Arrêter à la fin des blocs de code
}
},
# Agent spécialisé en développement web
"webdev": {
"model": "codellama:13b-python", # Utilise CodeLlama par défaut
"system_prompt": (
"Tu es un expert en développement web full-stack. "
"Tu maîtrises HTML, CSS, JavaScript, React, Vue.js, Node.js, et les API REST. "
"Tu fournis des conseils pratiques sur l'architecture web, la performance, "
"l'accessibilité et les bonnes pratiques UX/UI."
),
"params": {
"temperature": 0.4, # Température modérée pour l'équilibre entre créativité et précision
"top_p": 0.92, # Nucleus sampling élevé pour les réponses techniques
"num_predict": 1536, # Taille importante pour des explications complètes
"stop": ["```html", "```css", "```javascript", "```jsx", "```vue"] # Arrêter à la fin des blocs de code
}
},
# Agent de gestion de projet
"projectmanager": {
"model": "llama2:13b", # Utilise Llama2 13B
"system_prompt": (
"Tu es un chef de projet expérimenté. Tu aides à planifier, organiser et suivre "
"des projets de développement. Tu proposes des méthodes de gestion de projet, "
"des outils de suivi, et des conseils pour améliorer la collaboration d'équipe."
),
"params": {
"temperature": 0.6, # Température équilibrée
"top_p": 0.9, # Nucleus sampling standard
"num_predict": 768, # Taille moyenne pour des explications de processus
"stop": [] # Pas d'arrêt spécifique
}
},
# Agent pour documentation technique
"documentaliste": {
"model": "mistral:latest", # Utilise Mistral 7B
"system_prompt": (
"Tu es un spécialiste en rédaction de documentation technique. "
"Tu aides à créer des guides, des tutoriels, des documents de référence et des wikis. "
"Tu sais rendre l'information technique accessible et structurée."
),
"params": {
"temperature": 0.5, # Température modérée
"top_p": 0.85, # Légèrement restrictif pour cohérence
"num_predict": 512, # Taille moyenne
"stop": [] # Pas d'arrêt spécifique
}
}
}