Tests Playwright validés ✅:
- Création de notes: OK
- Modification titre: OK
- Modification contenu: OK
- Markdown éditable avec preview: OK
Fonctionnalités:
- date-fns: dates relatives sur cards
- react-markdown + remark-gfm
- Markdown avec toggle edit/preview
- Recherche améliorée (titre/contenu/labels/checkItems)
- Reminder recurrence/location (schema)
- NextAuth.js + User/Account/Session
- userId dans Note (optionnel)
- 4 migrations créées
Ready for production + auth integration
308 lines
8.0 KiB
Markdown
308 lines
8.0 KiB
Markdown
# 🤖 Workflow N8N - Tech News to Memento
|
|
|
|
## 📋 Description
|
|
|
|
Ce workflow automatise la veille technologique en :
|
|
1. **Lisant** un flux RSS TechCrunch (ou autre source tech)
|
|
2. **Analysant** les articles avec GPT-4o-mini
|
|
3. **Sélectionnant** les 2 actualités les plus pertinentes
|
|
4. **Créant** automatiquement 2 notes dans Memento via MCP
|
|
|
|
## 🔧 Architecture du Workflow
|
|
|
|
### 1. **Schedule Trigger** ⏰
|
|
- Exécution automatique toutes les **6 heures**
|
|
- Configurable selon vos besoins
|
|
|
|
### 2. **RSS Feed Reader** 📰
|
|
- Source par défaut : TechCrunch Feed
|
|
- Alternatives possibles :
|
|
- Hacker News: `https://news.ycombinator.com/rss`
|
|
- The Verge: `https://www.theverge.com/rss/index.xml`
|
|
- Ars Technica: `https://feeds.arstechnica.com/arstechnica/index`
|
|
- MIT Technology Review: `https://www.technologyreview.com/feed/`
|
|
|
|
### 3. **Prepare AI Analysis** 🧮
|
|
- Formate les articles pour l'analyse IA
|
|
- Crée un prompt système optimisé
|
|
- Structure les données pour OpenAI
|
|
|
|
### 4. **OpenAI Agent** 🤖
|
|
**Modèle :** GPT-4o-mini
|
|
**Temperature :** 0.3 (réponses cohérentes)
|
|
**Max Tokens :** 500
|
|
|
|
**Prompt Système :**
|
|
```
|
|
Tu es un expert en analyse d'actualités technologiques.
|
|
Ta mission est de sélectionner les 2 articles les plus pertinents
|
|
et importants parmi une liste d'actualités.
|
|
|
|
Tu dois être objectif, privilégier l'innovation et l'impact réel.
|
|
Réponds UNIQUEMENT en JSON valide, sans markdown ni texte supplémentaire.
|
|
```
|
|
|
|
**Critères de sélection :**
|
|
- ✅ Innovation majeure ou rupture technologique
|
|
- ✅ Impact significatif sur l'industrie tech
|
|
- ✅ Actualité récente et importante
|
|
- ❌ Éviter articles marketing/promotionnels
|
|
- ✅ Privilégier annonces concrètes
|
|
|
|
### 5. **Parse Selection** 🔍
|
|
- Parse la réponse JSON de l'IA
|
|
- Gère les formats markdown et JSON brut
|
|
- Fallback sur les 2 premiers articles en cas d'erreur
|
|
|
|
### 6. **Format Note** 📝
|
|
Crée une note structurée avec :
|
|
- 📰 Titre de l'article
|
|
- 🔍 Raison de la sélection (par l'IA)
|
|
- 📝 Résumé/description
|
|
- 🔗 Lien vers l'article complet
|
|
- 📅 Date de publication
|
|
- 🏷️ Catégories/tags
|
|
|
|
**Couleur :** Bleu (tech)
|
|
**Labels :** `Tech News`, `Auto-Generated`, + catégories de l'article
|
|
|
|
### 7. **MCP - Create Note** 💾
|
|
- Appelle le MCP server sur `http://localhost:3001/sse`
|
|
- Utilise le tool `create_note`
|
|
- Format JSON-RPC 2.0
|
|
|
|
**Payload exemple :**
|
|
```json
|
|
{
|
|
"jsonrpc": "2.0",
|
|
"id": 1704380400,
|
|
"method": "tools/call",
|
|
"params": {
|
|
"name": "create_note",
|
|
"arguments": {
|
|
"title": "📰 Major AI Breakthrough Announced...",
|
|
"content": "📰 **Full Title**\n\n🔍 **Pourquoi cet article ?**\n...",
|
|
"color": "blue",
|
|
"type": "text",
|
|
"labels": ["Tech News", "Auto-Generated", "AI"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### 8. **Extract Result & Summary** ✅
|
|
- Extrait l'ID et le titre des notes créées
|
|
- Crée un résumé d'exécution
|
|
- Status de succès/échec
|
|
|
|
## 🚀 Installation
|
|
|
|
### Prérequis
|
|
1. **N8N** installé et opérationnel
|
|
2. **MCP Server** tournant sur port 3001
|
|
3. **Clé API OpenAI** configurée
|
|
4. **Memento** accessible sur localhost:3000
|
|
|
|
### Étapes
|
|
|
|
1. **Démarrer le MCP Server**
|
|
```powershell
|
|
cd d:\dev_new_pc\Keep\mcp-server
|
|
node index-sse.js
|
|
```
|
|
|
|
2. **Vérifier que Memento tourne**
|
|
```powershell
|
|
cd d:\dev_new_pc\Keep\keep-notes
|
|
npm run dev
|
|
```
|
|
|
|
3. **Importer le workflow dans N8N**
|
|
- Ouvrir N8N (http://localhost:5678)
|
|
- Cliquer "Import from File"
|
|
- Sélectionner `n8n-tech-news-workflow.json`
|
|
|
|
4. **Configurer les credentials OpenAI**
|
|
- Node "OpenAI - Select Best Articles"
|
|
- Ajouter votre clé API OpenAI
|
|
- Tester la connexion
|
|
|
|
5. **Activer le workflow**
|
|
- Cliquer sur "Active" en haut à droite
|
|
- Le workflow s'exécutera toutes les 6 heures
|
|
|
|
## 🧪 Test Manuel
|
|
|
|
1. Ouvrir le workflow dans N8N
|
|
2. Cliquer sur "Execute Workflow" (éclair ⚡)
|
|
3. Vérifier les résultats :
|
|
- RSS feed récupéré ✅
|
|
- IA sélectionné 2 articles ✅
|
|
- 2 notes créées dans Memento ✅
|
|
|
|
## 📊 Monitoring
|
|
|
|
### Vérifier les notes créées
|
|
|
|
**Via l'interface Memento :**
|
|
- Ouvrir http://localhost:3000
|
|
- Chercher les notes avec label "Tech News"
|
|
- Notes en bleu avec icône 📰
|
|
|
|
**Via MCP :**
|
|
```bash
|
|
curl -X POST http://localhost:3001/sse \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"jsonrpc": "2.0",
|
|
"id": 1,
|
|
"method": "tools/call",
|
|
"params": {
|
|
"name": "get_notes",
|
|
"arguments": {
|
|
"search": "Tech News"
|
|
}
|
|
}
|
|
}'
|
|
```
|
|
|
|
## 🎯 Personnalisation
|
|
|
|
### Changer la source RSS
|
|
|
|
Dans le node "RSS Feed - Tech News" :
|
|
```javascript
|
|
// Remplacer l'URL par :
|
|
"https://feeds.feedburner.com/venturebeat/SZYF" // VentureBeat
|
|
"https://www.wired.com/feed/rss" // Wired
|
|
"https://techcrunch.com/feed/" // TechCrunch Alt
|
|
```
|
|
|
|
### Modifier les critères de sélection
|
|
|
|
Dans le node "Prepare AI Analysis", modifier le prompt :
|
|
```javascript
|
|
Critères de sélection :
|
|
- Focus sur [IA / Blockchain / Cloud / DevOps / ...]
|
|
- Articles en français uniquement
|
|
- Durée de lecture < 10 min
|
|
- etc.
|
|
```
|
|
|
|
### Changer la fréquence
|
|
|
|
Dans le node "Schedule - Every 6 hours" :
|
|
- **Toutes les 3h** : `hoursInterval: 3`
|
|
- **Tous les jours à 9h** : `cronExpression: "0 9 * * *"`
|
|
- **Du lundi au vendredi** : `cronExpression: "0 9 * * 1-5"`
|
|
|
|
### Modifier le nombre d'articles
|
|
|
|
Dans "Prepare AI Analysis" :
|
|
```javascript
|
|
// Passer de 2 à 3 articles
|
|
"sélectionnez les 3 articles les PLUS PERTINENTS"
|
|
|
|
// Adapter la structure JSON
|
|
{
|
|
"selected": [
|
|
{ "index": 1, "reason": "..." },
|
|
{ "index": 2, "reason": "..." },
|
|
{ "index": 3, "reason": "..." }
|
|
]
|
|
}
|
|
```
|
|
|
|
### Changer la couleur/labels
|
|
|
|
Dans le node "Format Note" :
|
|
```javascript
|
|
color: 'orange', // ou red, green, purple, etc.
|
|
labels: ['AI News', 'Breaking', 'Important']
|
|
```
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
### Erreur "MCP Server not responding"
|
|
```bash
|
|
# Vérifier que le MCP server tourne
|
|
curl http://localhost:3001/sse
|
|
|
|
# Redémarrer si nécessaire
|
|
cd d:\dev_new_pc\Keep\mcp-server
|
|
node index-sse.js
|
|
```
|
|
|
|
### Erreur OpenAI "Rate limit exceeded"
|
|
- Attendre quelques minutes
|
|
- Réduire la fréquence du workflow
|
|
- Upgrader votre plan OpenAI
|
|
|
|
### Pas d'articles sélectionnés
|
|
- Vérifier le flux RSS (URL valide ?)
|
|
- Tester le prompt OpenAI manuellement
|
|
- Vérifier les logs N8N
|
|
|
|
### Notes non créées
|
|
```javascript
|
|
// Vérifier le payload MCP dans le node "MCP - Create Note"
|
|
console.log($json);
|
|
|
|
// Tester directement avec curl
|
|
curl -X POST http://localhost:3001/sse \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"create_note","arguments":{"title":"Test","content":"Test"}}}'
|
|
```
|
|
|
|
## 📈 Optimisations Possibles
|
|
|
|
1. **Multi-sources RSS**
|
|
- Ajouter plusieurs nodes RSS
|
|
- Merger les résultats
|
|
- Augmenter à 5-10 articles sélectionnés
|
|
|
|
2. **Filtering avancé**
|
|
- Ajouter des keywords à exclure
|
|
- Filtrer par date (dernières 24h uniquement)
|
|
- Éliminer les doublons
|
|
|
|
3. **Enrichissement**
|
|
- Scraper le contenu complet de l'article
|
|
- Générer un résumé avec GPT
|
|
- Ajouter des images via API
|
|
|
|
4. **Notifications**
|
|
- Envoyer email avec les articles sélectionnés
|
|
- Notification Slack/Discord
|
|
- Push notification mobile
|
|
|
|
5. **Analytics**
|
|
- Logger les articles sélectionnés
|
|
- Stats sur les sources les plus utilisées
|
|
- Tendances des sujets tech
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- ⚠️ Ne pas exposer le MCP server sur internet
|
|
- ⚠️ Sécuriser la clé API OpenAI
|
|
- ✅ Utiliser variables d'environnement pour secrets
|
|
- ✅ Limiter rate limiting sur le RSS
|
|
|
|
## 📚 Ressources
|
|
|
|
- [N8N Documentation](https://docs.n8n.io/)
|
|
- [MCP Protocol Spec](https://modelcontextprotocol.io/)
|
|
- [OpenAI API](https://platform.openai.com/docs)
|
|
- [RSS Feeds Tech](https://github.com/awesome-rss/awesome-rss)
|
|
|
|
## 🎉 Résultat Attendu
|
|
|
|
Toutes les 6 heures, vous aurez automatiquement :
|
|
- ✅ **2 notes** dans Memento
|
|
- 📰 Sur les **actualités tech les plus importantes**
|
|
- 🤖 **Sélectionnées par IA**
|
|
- 🏷️ **Labellisées** et organisées
|
|
- 🔗 Avec **liens** vers articles complets
|
|
|
|
**Gain de temps :** ~30 min de veille manuelle par jour = **3.5h par semaine** ! 🚀
|