mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 19:54:43 +02:00
feat(finlab): alertes de prix par email (watcher sidecar, boucle 5 min) (#71)
Permet de configurer des alertes « préviens-moi par mail quand NVDA atteint 200$ » depuis la Console IA. Un sidecar surveille les cours en continu. - finlab/watcher.py : boucle toutes les 5 min, lit price_alerts.yaml (workspace), évalue les seuils above/below, envoie un email au franchissement. Anti-spam (1 mail/seuil, état .watcher-state.json, ré-armé en ré-éditant). Modes --once / --test - Email via le relais postfix du lab (storage-01:25, SMTP_HOST) qui réécrit l'expéditeur en Gmail — AUCUN secret (pods k8s dans mynetworks) - price_alerts.yaml : config seedée dans le workspace (email_to + rules), éditée par la Console IA sur demande - deployment : conteneur sidecar `watcher` (boucle 5 min, ressources minimes) - Dockerfile : seed price_alerts.yaml ; persona console + admin/ia/finlab.md documentés Logique testée en local (SMTP mocké) : franchissement → envoi, anti-spam au 2e run, seuil non atteint → rien. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
b032820f23
commit
3c55ee968d
6 changed files with 207 additions and 1 deletions
|
|
@ -80,6 +80,26 @@ relevé (« importe le relevé imports/… et mets à jour mon portefeuille »)
|
|||
|
||||
> C'est `portfolio.yaml` du **workspace** (PVC) qui fait foi au runtime — c'est lui que tu édites.
|
||||
|
||||
## Alertes de prix par email
|
||||
|
||||
Un **watcher** (sidecar) évalue **`price_alerts.yaml`** (workspace) **toutes les 5 min** et envoie
|
||||
un email via le relais du lab quand un seuil est franchi (un seul mail par seuil). Quand on te
|
||||
demande une alerte (« mets un mail quand NVDA atteint 200$ », « préviens-moi si Micron passe
|
||||
sous 100 ») :
|
||||
|
||||
1. **Vérifie le ticker** Yahoo et son cours actuel (outil `price`) — confirme le bon symbole.
|
||||
2. **Édite `price_alerts.yaml`** : ajoute une règle sous `rules:` —
|
||||
`{ ticker: NVDA, above: 200, note: "..." }` (`above` = ≥, `below` = ≤ ; devise native du titre).
|
||||
Garde `email_to` (par défaut l'email de l'utilisateur).
|
||||
3. **Confirme** la règle posée et rappelle : vérifié toutes les **5 min**, **un** mail par
|
||||
franchissement (ré-édite pour ré-armer).
|
||||
4. Pour **tester** l'envoi : `python -m finlab.watcher --test <email>` (mail immédiat) ou
|
||||
`python -m finlab.watcher --once` (évalue tout de suite). Pour **lister/retirer** une alerte,
|
||||
édite simplement `price_alerts.yaml`.
|
||||
|
||||
> Seuils en **devise native** du titre (NVDA en USD, AI.PA en EUR). C'est de la surveillance —
|
||||
> aucun ordre n'est passé.
|
||||
|
||||
## Méthode de réponse
|
||||
|
||||
1. Question chiffrée → appelle l'outil pertinent **avant** de conclure.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue