seo-generator-server/lib/selective-smart-touch/README.md
StillHammer 0244521f5c feat(selective-smart-touch): Add intelligent analysis-driven enhancement system + validation spec
## SelectiveSmartTouch (NEW)
- Architecture révolutionnaire: Analyse intelligente → Améliorations ciblées précises
- 5 modules: SmartAnalysisLayer, SmartTechnicalLayer, SmartStyleLayer, SmartReadabilityLayer, SmartTouchCore
- Système 10% segments: amélioration uniquement des segments les plus faibles (intensity-based)
- Détection contexte globale pour prompts adaptatifs multi-secteurs
- Intégration complète dans PipelineExecutor et PipelineDefinition

## Pipeline Validator Spec (NEW)
- Spécification complète système validation qualité par LLM
- 5 critères universels: Qualité, Verbosité, SEO, Répétitions, Naturalité
- Échantillonnage intelligent par filtrage balises (pas XML)
- Évaluation multi-versions avec justifications détaillées
- Coût estimé: ~$1/validation (260 appels LLM)

## Optimizations
- Réduction intensités fullEnhancement (technical 1.0→0.7, style 0.8→0.5)
- Ajout gardes-fous anti-familiarité excessive dans StyleLayer
- Sauvegarde étapes intermédiaires activée par défaut (pipeline-runner)

## Fixes
- Fix typo critique SmartTouchCore.js:110 (determineLayers ToApply → determineLayersToApply)
- Prompts généralisés multi-secteurs (e-commerce, SaaS, services, informatif)

🚀 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-13 15:01:02 +08:00

351 lines
9.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SelectiveSmartTouch - Architecture Nouvelle Génération
## 🎯 **Concept Révolutionnaire**
SelectiveSmartTouch est une **refonte complète de l'approche Selective Enhancement** basée sur le principe **Analyse → Amélioration Ciblée**.
### **Problème de l'ancienne approche**
```
❌ Approche "Améliore tout" (Selective Enhancement legacy):
LLM: "Voici un texte, améliore-le techniquement"
→ LLM devine ce qui manque
→ Résultats aléatoires, parfois hors-sujet
→ Prompts spécifiques à la signalétique (pas généralisable)
→ Pas de contrôle précis sur les modifications
```
### **Solution SmartTouch**
```
✅ Approche Analyse→Ciblée (SelectiveSmartTouch):
1. ANALYSE (LLM température 0.2): "Ce texte manque de : X, Y, Z"
2. AMÉLIORATION GUIDÉE: "Ajoute précisément X, Y, Z sans toucher au reste"
→ Contrôle total, résultats prévisibles
→ Prompts génériques (multi-secteurs)
→ Logs structurés JSON (debugging facile)
→ Coûts optimisés (analyse=petit modèle)
```
---
## 📂 **Architecture Modulaire**
### **Phase 1: Analyse Intelligente**
**SmartAnalysisLayer.js** - Analyse objective du contenu
```javascript
const analysis = await smartAnalysis.analyzeElement(content, { mc0, personality });
// Retourne JSON structuré:
{
"technical": {
"needed": true,
"score": 0.4,
"missing": ["données chiffrées", "spécifications"],
"issues": ["vocabulaire trop générique"]
},
"style": {
"needed": true,
"score": 0.5,
"genericPhrases": ["nos solutions", "notre expertise"]
},
"readability": {
"needed": false,
"score": 0.8,
"complexSentences": [],
"repetitiveConnectors": []
},
"improvements": [
"Ajouter données concrètes (chiffres, dimensions)",
"Remplacer expressions génériques: nos solutions, notre expertise"
],
"overallScore": 0.57
}
```
**Caractéristiques** :
- LLM: GPT-4o-mini (objectivité)
- Température: 0.2 (précision max)
- Fallback algorithmique si LLM échoue
- Analyse multi-dimensionnelle (technique, style, lisibilité, vocabulaire)
### **Phase 2: Améliorations Ciblées**
#### **SmartTechnicalLayer.js**
Applique **UNIQUEMENT** les améliorations techniques identifiées
```javascript
const result = await smartTechnical.applyTargeted(content, analysis, {
mc0, personality, intensity: 1.0
});
// Skip automatique si analysis.technical.needed === false
// Prompt ciblé: "Ajoute données chiffrées, remplace vocabulaire générique"
```
**Prompts génériques multi-secteurs** :
- E-commerce: "Dimensions: 30x20cm, épaisseur 3mm"
- SaaS: "Compatible avec 95% des systèmes"
- Services: "Délai: 3-5 jours ouvrés"
#### **SmartStyleLayer.js**
Améliorations style **UNIQUEMENT** si nécessaire
```javascript
const result = await smartStyle.applyTargeted(content, analysis, {
mc0, personality, intensity: 1.0
});
// Prompts adaptatifs selon secteur
// Exemples mode, SaaS, services, contenu informatif
```
#### **SmartReadabilityLayer.js**
Lisibilité **UNIQUEMENT** si score < 0.6
```javascript
const result = await smartReadability.applyTargeted(content, analysis, {
intensity: 1.0
});
// Simplifie phrases longues
// Varie connecteurs répétitifs
// Fluidifie structure
```
---
## 🚀 **Utilisation**
### **1. Via SmartTouchCore (orchestrateur)**
```javascript
const { SmartTouchCore } = require('./selective-smart-touch/SmartTouchCore');
const smartTouch = new SmartTouchCore();
const result = await smartTouch.apply(content, {
mode: 'full', // ou 'technical_only', 'style_only', etc.
intensity: 1.0,
csvData: { mc0, personality },
layersOrder: ['technical', 'style', 'readability'] // Personnalisable
});
console.log(result.modifications); // Nombre de modifications
console.log(result.analysisResults); // Analyse JSON détaillée
```
### **2. Via Pipeline Builder (UI)**
1. Glisser module **"SmartTouch (AnalyseCiblé)"** depuis palette Enhancement
2. Choisir mode:
- **full**: Analyse + toutes améliorations (recommandé)
- **analysis_only**: Analyse seule pour debugging
- **technical_only**: Technique uniquement
- **style_only**: Style uniquement
- **readability_only**: Lisibilité uniquement
3. Configurer intensité (0.1-2.0)
4. Sauvegarder et exécuter
### **3. Via PipelineExecutor**
```javascript
const pipeline = {
name: "SmartTouch Test",
pipeline: [
{ step: 1, module: 'generation', mode: 'simple', intensity: 1.0 },
{ step: 2, module: 'smarttouch', mode: 'full', intensity: 1.0 }
]
};
const executor = new PipelineExecutor();
const result = await executor.execute(pipeline, rowNumber);
```
---
## 📊 **Modes Disponibles**
| Mode | Description | Couches appliquées | Cas d'usage |
|------|-------------|-------------------|-------------|
| **full** | Analyse + toutes améliorations | Technical + Style + Readability | Production (recommandé) |
| **analysis_only** | Analyse sans modification | Aucune | Debugging, audit qualité |
| **technical_only** | Améliorations techniques ciblées | Technical | Contenu trop générique |
| **style_only** | Améliorations style ciblées | Style | Adapter personnalité |
| **readability_only** | Améliorations lisibilité ciblées | Readability | Phrases complexes |
---
## 🎨 **Exemples Génériques (Multi-Secteurs)**
### **E-commerce Mode**
```
❌ AVANT: "Produit de qualité aux dimensions optimales"
✅ APRÈS: "Dimensions: 30x20cm, épaisseur 3mm - qualité premium"
```
### **SaaS/Tech**
```
❌ AVANT: "Notre plateforme innovante optimise vos processus"
✅ APRÈS: "Automatisez vos workflows en 3 clics - compatible 95% des systèmes"
```
### **Services Professionnels**
```
❌ AVANT: "Nos solutions de qualité"
✅ APRÈS: "Expertise comptable garantissant votre conformité fiscale"
```
### **Contenu Informatif**
```
❌ AVANT: "Le réchauffement climatique est un problème important"
✅ APRÈS: "Le réchauffement climatique atteint +1.2°C depuis 1850"
```
---
## 🔄 **Comparaison Selective vs SmartTouch**
| Critère | Selective (ancien) | SmartTouch (nouveau) |
|---------|-------------------|----------------------|
| **Contrôle** | Faible | Fort (dictature exacte) |
| **Prévisibilité** | Aléatoire | Déterministe |
| **Généricité** | Spécifique signalétique | Multi-secteurs |
| **Debugging** | Boîte noire | Analyse JSON visible |
| **Coûts tokens** | Moyen | Optimisé |
| **Qualité** | Variable | Consistante |
---
## 📈 **Statistiques & Logs**
SmartTouch retourne des stats détaillées :
```javascript
{
"mode": "full",
"analysisResults": { /* JSON analyses par élément */ },
"layersApplied": [
{ "name": "technical", "modifications": 5, "duration": 2300 },
{ "name": "style", "modifications": 3, "duration": 1800 },
{ "name": "readability", "modifications": 2, "duration": 1500 }
],
"totalModifications": 10,
"elementsProcessed": 12,
"elementsImproved": 8,
"duration": 5600
}
```
**Logs structurés** :
```
🔍 SMART ANALYSIS BATCH: 12 éléments
✅ [Titre_H1]: 2 améliorations
✅ [Paragraphe_1]: 3 améliorations
📊 Score moyen: 0.62 | Améliorations totales: 18
🔧 === PHASE 2: AMÉLIORATIONS CIBLÉES ===
🎯 Couche: technical
✅ 5 modifications appliquées (2300ms)
🎯 Couche: style
⏭️ Skip (score: 0.85 - aucune amélioration nécessaire)
```
---
## 🧪 **Testing**
### **Test unitaire**
```javascript
const { SmartAnalysisLayer } = require('./SmartAnalysisLayer');
const analyzer = new SmartAnalysisLayer();
const analysis = await analyzer.analyzeElement("Contenu test...", {});
expect(analysis.overallScore).toBeGreaterThan(0);
expect(analysis.improvements).toBeInstanceOf(Array);
```
### **Test intégration**
```bash
# Via Pipeline Builder UI
npm start
# → http://localhost:3000/pipeline-builder.html
# → Glisser "SmartTouch" + configurer + tester
```
---
## 📝 **Migration depuis Selective**
```javascript
// ANCIEN (Selective Enhancement)
const result = await applySelectiveStack(content, 'fullEnhancement', config);
// NOUVEAU (SmartTouch)
const smartTouch = new SmartTouchCore();
const result = await smartTouch.apply(content, {
mode: 'full',
intensity: config.intensity,
csvData: config.csvData
});
```
**Backward compatible** : Selective Enhancement reste disponible, SmartTouch est un complément.
---
## 🛠️ **Configuration Avancée**
### **Ordre des couches personnalisé**
```javascript
const result = await smartTouch.apply(content, {
mode: 'full',
layersOrder: ['style', 'technical', 'readability'] // Style en premier
});
```
### **Skip analyse (mode legacy)**
```javascript
const result = await smartTouch.apply(content, {
mode: 'technical_only',
skipAnalysis: true // Applique directement (moins précis)
});
```
---
## 🚦 **Statut du Module**
- **Core modules créés** (Analysis, Technical, Style, Readability, Core)
- **Intégration PipelineExecutor** (module `smarttouch` reconnu)
- **Intégration Pipeline Builder** (drag-and-drop UI)
- **Intégration API** (PipelineDefinition, modes, durées)
- **Tests production** (en cours)
- **Documentation utilisateur** (à compléter)
---
## 🎓 **Philosophie de Design**
1. **Analyse avant action** : Comprendre avant de modifier
2. **Ciblage précis** : Améliorer UNIQUEMENT ce qui est nécessaire
3. **Généricité maximale** : Fonctionne pour tout type de contenu
4. **Logs transparents** : JSON structuré pour debugging
5. **Optimisation coûts** : Analyse légère, améliorations ciblées
---
## 🔗 **Voir aussi**
- `lib/selective-enhancement/` - Architecture legacy (toujours disponible)
- `lib/pipeline/PipelineExecutor.js` - Orchestrateur principal
- `lib/pipeline/PipelineDefinition.js` - Définition modules
- `public/pipeline-builder.html` - Interface UI
---
**Auteur**: Architecture SmartTouch - Nouvelle Génération SEO Generator
**Date**: 2025-01-13
**Version**: 1.0.0