roadmap: decision finale exhaustif + dedup par contenu (31/07/2026)
This commit is contained in:
@@ -1,26 +1,30 @@
|
|||||||
# nyora-notes-tt -- Pieces jointes : chantier dedie futur, cible plutot qu'exhaustif
|
# nyora-notes-tt -- Pieces jointes : chantier dedie futur, EXHAUSTIF (decision finale 31/07/2026)
|
||||||
|
|
||||||
**Date** : 31/07/2026
|
**Date** : 31/07/2026 (mise a jour -- decision initiale "cible" remplacee par "exhaustif")
|
||||||
|
|
||||||
## Decision
|
## Decision finale
|
||||||
|
|
||||||
L'extraction du texte des pieces jointes ne fait PAS partie du backfill texte actuellement en cours (205 dossiers, 2024-2026). C'est un chantier separe, a lancer une fois le backfill texte stabilise.
|
Nabil tranche pour l'exhaustif : toutes les PJ, tous les dossiers. Motivation explicite : "je ne veux rien perdre comme info", accepte le cout en temps/ressources en echange ("un vrai RAG merite quelques sacrifices").
|
||||||
|
|
||||||
## Infrastructure deja disponible (rien a construire cote hermes-mail-browser)
|
Reste separe du backfill texte en cours (205 dossiers, 2024-2026, deadline dimanche matin) -- chantier lance APRES, pas en parallele, pour ne pas compromettre les deux delais a la fois.
|
||||||
|
|
||||||
- `GET /message/{index}/attachments` -- liste les pieces jointes d'un message (leger, pas de telechargement).
|
## Deduplication par CONTENU, pas par nom de fichier
|
||||||
- `GET /message/{index}/attachments/{filename}/text` -- telecharge (via CDP, jusqu'a 45s d'attente -- pas de gestion de telechargement native sur un navigateur pilote a distance) puis extrait le texte (`extract_text_from_file`, PDF/Office geres).
|
|
||||||
- Equivalents `/search/message/attachments*` pour un contexte de recherche.
|
|
||||||
|
|
||||||
## Pourquoi pas maintenant
|
Point souleve par Nabil, essentiel : la meme PJ peut apparaitre plusieurs fois (diffusion a plusieurs destinataires) ET le meme fichier peut porter des noms differents (renommage, versions). Un dedoublonnage par nom de fichier ne suffit pas.
|
||||||
|
|
||||||
1. **Cout** : jusqu'a 45s par piece jointe telechargee. Applique a toutes les PJ de tous les messages, ca ralentirait significativement chaque dossier (les AO a plusieurs lots ont souvent une PJ par lot).
|
**Solution retenue** : meme mecanisme que le dedoublonnage des diffusions groupe de mails deja en place (similarite vectorielle sur le texte extrait, pas sur le nom). Le nom du fichier ne rentre jamais dans la decision de dedoublonnage -- seul le contenu compte.
|
||||||
2. **Memoire a deux vitesses** : ajouter cette capacite en cours de backfill laisserait les dossiers deja traites (Veille, Consultations, Medenine...) sans contenu de PJ, contrairement aux dossiers traites apres l'ajout -- incoherence de qualite dans le corpus.
|
|
||||||
|
|
||||||
## Approche retenue pour le futur chantier
|
## Cout reel -- deux volets distincts, ne pas les confondre
|
||||||
|
|
||||||
**Cible, pas exhaustif.** Pas de balayage systematique de toutes les PJ. A definir avec Nabil : quels dossiers/types de contenu ont une vraie valeur a extraire (grilles d'evaluation AO, notifications PDF de resultats) versus les PJ a faible valeur (signatures, logos) qui ne justifient pas le cout de 45s/telechargement.
|
**1. Cout API (LLM)** : Nabil suppose que le forfait Go OpenCode absorbe tout sans surcout. Correction : ca couvre Mimo v2.5 et DeepSeek V4 Flash (provider opencode), mais PAS les embeddings Gemini (cle Google separee dans Bifrost) -- necessaires pour le dedoublonnage par contenu decrit ci-dessus. Volet non chiffre a ce stade.
|
||||||
|
|
||||||
## Piste d'implementation (a affiner le jour venu)
|
**2. Cout temps** : le vrai facteur limitant, independant de tout forfait. Chaque telechargement de PJ attend jusqu'a 45s (contrainte technique : navigateur pilote a distance via CDP, pas de gestion de telechargement native). Sur l'ensemble de l'arborescence (branche RLA 2024 notamment, potentiellement plusieurs PJ par lot), estimation grossiere : plusieurs heures a plus d'une journee, rien qu'en telechargement.
|
||||||
|
|
||||||
Pour chaque message traite, appeler d'abord `/attachments` (leger) pour verifier s'il y a des PJ AVANT de decider si un telechargement+extraction est justifie -- eviter de payer le cout de verification lourde sur les messages qui n'en ont pas, et le cout de telechargement sur les PJ hors-cible.
|
## Contexte quota OpenCode donne par Nabil (31/07/2026)
|
||||||
|
|
||||||
|
Forfait Go : 80% restant, 12 jours avant fin de mois. Fenetre hebdomadaire : 85% restant, moins de 2 jours avant fin de semaine. A reverifier au moment de lancer le chantier PJ (le contexte peut avoir change).
|
||||||
|
|
||||||
|
## Infrastructure deja disponible (rappel, cf version precedente de cette note)
|
||||||
|
|
||||||
|
- `GET /message/{index}/attachments` -- listing leger, deja integre au backfill texte en cours (colonne `notes.attachments`, JSON, best-effort).
|
||||||
|
- `GET /message/{index}/attachments/{filename}/text` -- telechargement + extraction, PAS encore integre au pipeline -- objet du present chantier.
|
||||||
|
|||||||
Reference in New Issue
Block a user