2.7 KiB
Veille Dr. Nexum — Email enrichi (fin du bug "email illisible")
Date : 2026-07-03 Tags : nyora, dr-nexum, veille, email, n8n, cron
Problème
L'email quotidien "Veille IA Dr. Nexum" (envoyé via veille_ia_matin.py → webhook n8n veille-nexum-email → SMTP ik.me) n'apportait que titre + lien + score brut, alors que le message Telegram équivalent contenait l'analyse complète (pourquoi c'est pertinent, titre vidéo suggéré, angle unique). Cause : le script Python envoyait l'email avant que Hermes fasse l'enrichissement (l'email était construit directement dans le script, l'analyse n'existait que dans la réponse finale de l'agent, livrée uniquement à Telegram).
Solution
Découplage scraping / enrichissement / envoi email :
veille_ia_matin.py(cronveille-ia-nexum-4ee61494, 11h30 UTC quotidien) : scrape 13 chaînes YouTube + HN + VentureBeat, score, top 5, écrit/opt/data/veille_raw.json(données brutes). N'envoie plus d'email lui-même.- Hermes analyse le top 5 (pourquoi pertinent / titre vidéo / angle) → format Telegram livré automatiquement (
HERMES_CRON_AUTO_DELIVER_PLATFORM=telegram). - Hermes écrit
/tmp/veille_enrich.jsonavec les mêmes analyses (même ordre queveille_raw.json) via un heredoc bash à guillemets simples (<< 'EOF') — jamais de f-string Python avec{...}inline dans une commande bash (voir piège accolades documenté danscommon/). - Hermes exécute
python3 /opt/data/veille_email_send.py— ce script fusionneveille_raw.json+veille_enrich.json, construit un HTML avec le thème Nyora (cards sombres, dégradé rose/or #e94560, footer doré) contenant le même contenu que Telegram, et POST vers le webhook n8nveille-nexum-email(workflowVEILLE | Email Dr. Nexum → Nabil TT, iduwjTfOlzKmzHkO9Q).
Fichiers
| Fichier | Rôle |
|---|---|
/opt/data/veille_ia_matin.py |
Scraping + scoring, écrit veille_raw.json |
/opt/data/veille_raw.json |
Données brutes du run (écrasées à chaque exécution) |
/tmp/veille_enrich.json |
Analyse Hermes du jour (éphémère) |
/opt/data/veille_email_send.py |
Fusion raw+enrich → HTML → POST n8n |
Détail complet du prompt cron et du format Telegram/email : voir skill hermes-nyora/data/skills/nyora/dr-nexum-production/references/veille-quotidienne-cron.md.
Règle à ne jamais casser
L'email ne doit jamais repartir en arrière vers "titre + lien + score brut". Si le contenu enrichi (why/video_title/angle) manque, veille_email_send.py envoie quand même l'email mais log un WARN — c'est un signal que l'étape 3 (écriture de veille_enrich.json) a été oubliée dans le prompt cron, pas un comportement normal.