seo-generator-server/TODO.md
2025-09-03 15:29:19 +08:00

107 lines
4.2 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 - 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