mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 21:37:47 +01:00
155 lines
3.6 KiB
Markdown
155 lines
3.6 KiB
Markdown
|
||
|
||
---
|
||
|
||
### 📄 `docs/journal_developpement_llm_2025-03-26.md`
|
||
|
||
```markdown
|
||
# 🧠 Journal de développement - Infrastructure LLM
|
||
📅 **Date** : 2025-03-26
|
||
🎯 **Objectif** : Structurer un système modulaire pour gérer, tester et affiner plusieurs modèles LLM via une architecture orientée objet.
|
||
|
||
---
|
||
|
||
## ✅ Étapes réalisées
|
||
|
||
### 1. 📦 Mise en place d’une architecture modulaire
|
||
|
||
```
|
||
|
||
llm_lab/ ├── core/ # Classes des modèles │ ├── base_llm.py # Classe abstraite BaseLLM │ ├── mistral7b.py # Modèle spécifique Mistral 7B │ ├── factory.py # Générateur dynamique de modèles ├── agents/ # Rôles d'agents (prompts système + paramètres) │ └── roles.py ├── utils/ # Scripts de test automatisé │ └── parameter_tester.py ├── tests/ # Scripts de test individuels ├── logs/ # Logs Markdown générés automatiquement ├── outputs/ # Exports futurs (JSON, CSV) ├── config/ # Paramètres modèles (future extensibilité) └── log_index.md # Index central des logs
|
||
|
||
```
|
||
|
||
---
|
||
|
||
### 2. 🧱 Construction des composants
|
||
|
||
#### 🔹 `BaseLLM` (abstraite)
|
||
- Gère les prompts, rôles, paramètres
|
||
- Centralise le logging (`.md` + index)
|
||
|
||
#### 🔹 `Mistral7B`
|
||
- Hérite de `BaseLLM`
|
||
- Intègre les paramètres valides pour Ollama
|
||
- Appelle l'API Ollama en local
|
||
|
||
#### 🔹 `factory.py`
|
||
- Permet de créer un modèle à partir de son nom :
|
||
```python
|
||
model = LLMFactory.create("mistral:latest")
|
||
```
|
||
|
||
---
|
||
|
||
### 3. 🎭 Système de rôles (`agents/roles.py`)
|
||
|
||
Chaque rôle contient :
|
||
|
||
- un `system_prompt` (décrit l’identité de l’agent)
|
||
|
||
- des `params` personnalisés (optionnels)
|
||
|
||
|
||
Exemples :
|
||
|
||
```python
|
||
AGENTS = {
|
||
"formateur": {
|
||
"system_prompt": "...",
|
||
"params": { "temperature": 0.6 }
|
||
},
|
||
...
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 4. 🧪 Automatisation de tests de paramètres (`utils/parameter_tester.py`)
|
||
|
||
Fonction :
|
||
|
||
```python
|
||
test_agents_on_prompt(
|
||
model_class, prompt, agents, param_grid, fixed_params
|
||
)
|
||
```
|
||
|
||
➡️ Permet de :
|
||
|
||
- Lancer plusieurs agents sur un même prompt
|
||
|
||
- Faire varier les paramètres automatiquement
|
||
|
||
- Logger chaque test séparément
|
||
|
||
|
||
---
|
||
|
||
### 5. 📝 Système de logs
|
||
|
||
- Chaque appel génère un fichier `.md` dans `logs/`
|
||
|
||
- Contient :
|
||
|
||
- UID, modèle, moteur, agent
|
||
|
||
- paramètres complets
|
||
|
||
- réponse générée
|
||
|
||
- L’index central est mis à jour (`log_index.md`)
|
||
|
||
|
||
---
|
||
|
||
## 💡 Stratégie recommandée de test
|
||
|
||
### Étape 1 : tester plusieurs agents avec les mêmes paramètres
|
||
|
||
→ Valider que leur comportement reflète bien leur rôle
|
||
|
||
### Étape 2 : faire varier les paramètres sur chaque agent
|
||
|
||
→ Identifier les réglages les plus pertinents agent par agent
|
||
|
||
---
|
||
|
||
## ⚠️ Bonnes pratiques pour exécuter les tests
|
||
|
||
### ✔️ Depuis la racine du projet :
|
||
|
||
```bash
|
||
python -m tests.test_single_agent
|
||
```
|
||
|
||
### ✔️ Ou ajouter ceci au début des fichiers `tests/` :
|
||
|
||
```python
|
||
import sys, os
|
||
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||
```
|
||
|
||
---
|
||
|
||
## 🔜 Prochaines étapes possibles
|
||
|
||
- Ajouter des modèles supplémentaires (`llama2`, `mixtral`, etc.)
|
||
|
||
- Gérer les tests en parallèle (`ThreadPoolExecutor`)
|
||
|
||
- Ajouter des dashboards CSV/JSON dans `outputs/`
|
||
|
||
- Générer des rapports automatiques
|
||
|
||
|
||
---
|
||
|
||
🧠 _Tu disposes désormais d’une architecture solide pour explorer, comparer, améliorer et documenter le comportement de n’importe quel LLM à travers des rôles et des réglages variés._
|
||
|
||
```
|
||
|
||
---
|
||
|
||
Souhaites-tu que je te livre ce fichier `.md` à télécharger directement dans un `.zip` avec l’arborescence minimale ?
|
||
``` |