mirror of
https://github.com/Alkatrazz24/Funk-lab.git
synced 2026-07-08 23:54:43 +02:00
feat(finlab): import de relevé par image (upload dashboard → scan Console IA) (#69)
Process dédié pour actualiser le portefeuille à partir d'une capture de relevé :
- Dashboard : bouton « 📥 Importer un relevé » (panneau Mes comptes) → upload de
l'image vers le workspace (imports/) via POST /api/import ; une modale donne la
phrase exacte à dire à la console + un lien direct
- Backend : endpoints /api/import (UploadFile, refuse les non-images) et /api/imports
(listing), dossier imports/ sous FINLAB_HOME (workspace, persistant)
- Persona console (CLAUDE.md) : workflow « Import d'un relevé » — lire l'image,
extraire compte/positions, mapper vers tickers Yahoo en VÉRIFIANT les cours,
confirmer, puis mettre à jour portfolio.yaml
Le scan vision se fait dans la Console IA (abonnement, pas de clé API). Le dashboard
n'est que le pont d'upload. Testé : POST image→200 + listing OK, non-image→400 ;
JS node --check OK.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
2228613050
commit
8bbfe88a30
3 changed files with 89 additions and 2 deletions
|
|
@ -56,6 +56,30 @@ courtier + BNP Paribas PEA), **`watchlists.yaml`** (thèmes), **`alerts.yaml`**
|
|||
les modifier à la demande (ex. « ajoute 5 actions Micron sur Revolut »), puis relancer les outils.
|
||||
Les agrégats (`portfolio_summary`, alertes `portfolio`, scan) couvrent **tous les comptes**.
|
||||
|
||||
## Import d'un relevé (image → portefeuille)
|
||||
|
||||
L'utilisateur peut uploader une **capture de relevé** depuis le dashboard (bouton « Importer un
|
||||
relevé ») ; l'image atterrit dans **`imports/`** du workspace. Quand on te demande d'importer un
|
||||
relevé (« importe le relevé imports/… et mets à jour mon portefeuille ») :
|
||||
|
||||
1. **Lis l'image** (`Read imports/<fichier>`). S'il n'y a pas de chemin, prends la plus récente
|
||||
de `imports/` (`ls -t imports/`).
|
||||
2. **Extrais** : le **nom du compte** (banque/courtier visible sur la capture) et son **type**
|
||||
(`banque`/`courtier`/`pea`/`crypto`), les **liquidités**, et chaque ligne : libellé + **ISIN**
|
||||
ou code si présent, **quantité**, **PRU** (prix de revient), devise.
|
||||
3. **Mappe chaque ligne vers son ticker Yahoo Finance** (actions FR/EU → suffixe `.PA`/`.AS` ;
|
||||
ETF par leur mnémonique, ex. `PAEEM.PA`). **VÉRIFIE** chaque ticker avec
|
||||
`python -m finlab.cli` ou l'outil `price` : le **cours doit coller au relevé** (sinon mauvais
|
||||
ticker, cherche la bonne variante).
|
||||
4. **Montre le compte reconstruit** (tableau ticker/qté/PRU + total) et **demande confirmation
|
||||
avant d'écrire**.
|
||||
5. Mets à jour **`portfolio.yaml`** (workspace) : **ajoute** le compte, ou **remplace**-le s'il
|
||||
existe déjà (même nom), au format `accounts:`. Respecte les nombres exactement.
|
||||
6. Relance `portfolio_summary` pour valider que les totaux collent au relevé. Rappelle que
|
||||
c'est analyse only (aucun ordre réel).
|
||||
|
||||
> C'est `portfolio.yaml` du **workspace** (PVC) qui fait foi au runtime — c'est lui que tu édites.
|
||||
|
||||
## 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