Application systématique et méthodique de tous les patches historiques. ## ✅ FICHIERS SYNCHRONISÉS (19 fichiers) ### Core & Infrastructure: - server.js (14 patches) - Lazy loading ModeManager, SIGINT hard kill, timing logs - ModeManager.js (4 patches) - Instrumentation complète avec timing détaillé ### Pipeline System: - PipelineDefinition.js (6 patches) - Source unique getLLMProvidersList() - pipeline-builder.js (8 patches) - Standardisation LLM providers - pipeline-runner.js (6 patches) - Affichage résultats structurés + debug console - pipeline-builder.html (2 patches) - Fallback providers synchronisés - pipeline-runner.html (3 patches) - UI améliorée résultats ### Enhancement Layers: - TechnicalLayer.js (1 patch) - defaultLLM: 'gpt-4o-mini' - StyleLayer.js (1 patch) - Type safety vocabulairePref - PatternBreakingCore.js (1 patch) - Mapping modifications - PatternBreakingLayers.js (1 patch) - LLM standardisé ### Validators & Tests: - QualityMetrics.js (1 patch) - callLLM('gpt-4o-mini') - PersonalityValidator.js (1 patch) - Provider gpt-4o-mini - AntiDetectionValidator.js - Synchronisé ### Documentation: - TODO.md (1 patch) - Section LiteLLM pour tracking coûts - CLAUDE.md - Documentation à jour ### Tools: - tools/analyze-skipped-exports.js (nouveau) - tools/apply-claude-exports.js (nouveau) - tools/apply-claude-exports-fuzzy.js (nouveau) ## 🎯 Changements principaux: - ✅ Standardisation LLM providers (openai → gpt-4o-mini, claude → claude-sonnet-4-5) - ✅ Lazy loading optimisé (ModeManager chargé à la demande) - ✅ SIGINT immediate exit (pas de graceful shutdown) - ✅ Type safety renforcé (conversions string explicites) - ✅ Instrumentation timing complète - ✅ Debug logging amélioré (console.log résultats pipeline) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
167 lines
6.4 KiB
Markdown
167 lines
6.4 KiB
Markdown
# TODO - AMÉLIORATIONS WORKFLOW CRITIQUES
|
|
|
|
## 🚨 PRIORITÉ 1 - INTÉGRATION IA DANS PERSONNALITÉS
|
|
|
|
### PROBLÈME ACTUEL
|
|
- Les fallback IA ont été supprimés pour éviter la dégradation de qualité
|
|
- Si une IA échoue (Claude, OpenAI, Gemini, Mistral), le workflow s'arrête brutalement
|
|
- Aucune stratégie de récupération intelligente
|
|
|
|
### SOLUTION REQUISE
|
|
**Intégrer les préférences IA directement dans les profils de personnalités Google Sheets**
|
|
|
|
#### Nouveaux champs à ajouter dans la sheet "Personnalités" :
|
|
- `LLM_Prefere` : LLM principal pour cette personnalité (ex: "claude", "openai")
|
|
- `LLM_Fallback` : LLM de secours si le principal échoue
|
|
- `Temperature` : Température spécifique à la personnalité (0.7-1.0)
|
|
- `Style_Prompt` : Instructions spécifiques pour adapter le prompt au style
|
|
|
|
#### Exemple de données :
|
|
```
|
|
Marc | Expert technique | ... | claude | openai | 0.8 | "Utilise un vocabulaire technique précis"
|
|
Sophie | Passionnée | ... | gemini | mistral | 1.0 | "Sois chaleureux et utilise des anecdotes"
|
|
```
|
|
|
|
#### Logique de fallback intelligent :
|
|
1. Utiliser `LLM_Prefere` de la personnalité
|
|
2. Si échec → utiliser `LLM_Fallback` de la personnalité
|
|
3. Si échec → **relancer avec nouvelle personnalité** (voir ci-dessous)
|
|
|
|
---
|
|
|
|
## 🔄 PRIORITÉ 2 - RELANCE AVEC NOUVELLE PERSONNALITÉ
|
|
|
|
### PROBLÈME ACTUEL
|
|
- Si l'enhancement d'une personnalité échoue, le workflow s'arrête
|
|
- Perte complète du travail déjà effectué
|
|
|
|
### SOLUTION REQUISE
|
|
**Système de relance avec sélection d'une nouvelle personnalité**
|
|
|
|
#### Stratégie de récupération :
|
|
1. **Détection d'échec** : Capturer les erreurs IA lors de l'enhancement
|
|
2. **Sauvegarde état** : Garder le contenu généré jusqu'à l'étape qui a échoué
|
|
3. **Nouvelle sélection** : Choisir une personnalité différente avec LLM disponible
|
|
4. **Reprise partielle** : Reprendre seulement l'étape qui a échoué, pas tout le workflow
|
|
|
|
#### Implémentation suggérée :
|
|
```javascript
|
|
async function enhanceWithPersonalityRecovery(content, personality, attempt = 1) {
|
|
try {
|
|
return await enhance(content, personality);
|
|
} catch (error) {
|
|
if (attempt < 3) {
|
|
const newPersonality = selectAlternativePersonality(personality);
|
|
logSh(`🔄 Relance tentative ${attempt + 1} avec ${newPersonality.nom}`, 'INFO');
|
|
return await enhanceWithPersonalityRecovery(content, newPersonality, attempt + 1);
|
|
}
|
|
throw new Error(`FATAL: Échec après 3 tentatives avec personnalités différentes`);
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 PRIORITÉ 3 - INTÉGRATION LITELLM POUR TRACKING COÛTS
|
|
|
|
### PROBLÈME ACTUEL
|
|
- Impossible de récupérer les crédits restants via les APIs des providers (OpenAI, Anthropic, etc.)
|
|
- OpenAI a supprimé l'endpoint `/v1/dashboard/billing/credit_grants` pour les soldes USD
|
|
- Anthropic n'a aucune API pour la balance (feature request ouverte depuis longtemps)
|
|
- Pas de visibilité centralisée sur les coûts multi-providers
|
|
|
|
### SOLUTION REQUISE
|
|
**Intégrer LiteLLM comme proxy pour tracking automatique des coûts**
|
|
|
|
#### Pourquoi LiteLLM :
|
|
- ✅ **Standard de l'industrie** : Utilisé par la majorité des projets multi-LLM
|
|
- ✅ **Support 100+ LLMs** : OpenAI, Anthropic, Google, Deepseek, Moonshot, Mistral, etc.
|
|
- ✅ **Tracking automatique** : Intercepte tous les appels et calcule les coûts
|
|
- ✅ **Dashboard unifié** : Vue centralisée par user/team/API key
|
|
- ✅ **API de métriques** : Récupération programmatique des stats
|
|
|
|
#### Implémentation suggérée :
|
|
```bash
|
|
# Installation
|
|
pip install litellm[proxy]
|
|
|
|
# Démarrage proxy
|
|
litellm --config litellm_config.yaml
|
|
```
|
|
|
|
```yaml
|
|
# litellm_config.yaml
|
|
model_list:
|
|
- model_name: gpt-5
|
|
litellm_params:
|
|
model: openai/gpt-5
|
|
api_key: ${OPENAI_API_KEY}
|
|
- model_name: claude-sonnet-4-5
|
|
litellm_params:
|
|
model: anthropic/claude-sonnet-4-5-20250929
|
|
api_key: ${ANTHROPIC_API_KEY}
|
|
# ... autres models
|
|
```
|
|
|
|
#### Changements dans notre code :
|
|
1. **LLMManager.js** : Router tous les appels via LiteLLM proxy (localhost:8000)
|
|
2. **LLM Monitoring** : Récupérer les stats via l'API LiteLLM
|
|
3. **Dashboard** : Afficher "Dépensé ce mois" au lieu de "Crédits restants"
|
|
|
|
#### Alternatives évaluées :
|
|
- **Langfuse** : Bien mais moins de models supportés
|
|
- **Portkey** : Commercial, pas open source
|
|
- **Helicone** : Plus basique
|
|
- **Tracking maison** : Trop de maintenance, risque d'erreurs de calcul
|
|
|
|
#### Avantages supplémentaires :
|
|
- 🔄 **Load balancing** : Rotation automatique entre plusieurs clés API
|
|
- 📊 **Analytics** : Métriques détaillées par endpoint/user/model
|
|
- 🚨 **Alertes** : Notifications quand budget dépassé
|
|
- 💾 **Caching** : Cache intelligent pour réduire les coûts
|
|
|
|
---
|
|
|
|
## 📋 PRIORITÉ 4 - AUTRES AMÉLIORATIONS
|
|
|
|
### A. Monitoring des échecs IA
|
|
- **Logging détaillé** : Quel LLM échoue, quand, pourquoi
|
|
- **Métriques de fiabilité** : Taux de succès par LLM et par personnalité
|
|
- **Alertes proactives** : Notification si un LLM devient indisponible
|
|
|
|
### B. Configuration dynamique
|
|
- **Tests de connectivité** : Vérifier la disponibilité des LLM avant le workflow
|
|
- **Sélection intelligente** : Éviter les LLM connus comme indisponibles
|
|
- **Mise en cache** : Cache des réponses LLM pour éviter les redondances
|
|
|
|
### C. Rollback partiel
|
|
- **Sauvegarde étapes** : Sauvegarder le résultat de chaque étape du workflow
|
|
- **Reprise granulaire** : Reprendre à l'étape qui a échoué, pas depuis le début
|
|
|
|
---
|
|
|
|
## ⚡ IMPLÉMENTATION IMMÉDIATE
|
|
|
|
### Étape 1 : Modifier Google Sheets
|
|
1. Ajouter colonnes dans sheet "Personnalités"
|
|
2. Remplir les données pour les 15 personnalités existantes
|
|
3. Tester la lecture des nouvelles colonnes
|
|
|
|
### Étape 2 : Adapter le code
|
|
1. **BrainConfig.js** : Lire les nouveaux champs LLM des personnalités
|
|
2. **SelectiveEnhancement.js** : Utiliser les LLM préférés par personnalité
|
|
3. **LLMManager.js** : Ajouter logique de fallback par personnalité
|
|
|
|
### Étape 3 : Tests
|
|
1. Tester avec LLM indisponible volontairement
|
|
2. Vérifier la relance avec nouvelle personnalité
|
|
3. Valider la qualité du contenu avec les fallbacks
|
|
|
|
---
|
|
|
|
## 🎯 RÉSULTAT ATTENDU
|
|
|
|
- **99% de disponibilité** : Le workflow ne s'arrête plus pour des problèmes IA temporaires
|
|
- **Qualité préservée** : Chaque personnalité utilise son LLM optimal
|
|
- **Récupération intelligente** : Échec d'une personnalité = essai avec une autre
|
|
- **Zero perte de travail** : Reprise à l'étape d'échec, pas restart complet |