Sur 100 à 500K produits par client, plusieurs runs par jour, la facture mensuelle grimpe vite — et elle grimpe surtout pour des raisons évitables. Cette formation expose les 4 leviers qui transforment un workflow Feed Enrich à $3 480 / mois en un workflow équivalent à $57 / mois. Mêmes outputs, même qualité.
C'est le message le plus important de la formation. Tout le reste en découle. Quand on pense « coût d'un LLM », on pense intuitivement à la génération : les mots que le modèle produit. C'est faux pour nos usages. Sur un appel Feed Enrich, le prompt système, les règles et les données produit pèsent 15 à 30 fois plus que la réponse générée. Optimiser la longueur de la réponse n'apporte rien. Le combat se joue sur l'input.
tokens en moyenne par appel : prompt système + règles + données produit injectées.
tokens en moyenne : un titre GMC, une description courte, un attribut normalisé.
Sur Gemini 2.5 Flash-Lite, un appel typique Feed Enrich coûte 0,018 centime. Imperceptible à l'unité. Mais multiplié par un catalogue × une fréquence, le résultat devient massif.
| Échelle1 node Feed Enrich, Gemini 2.5 Flash-Lite | CoûtUSD |
|---|---|
| 1 appel | $0,000182 |
| 1 000 appels | $0,18 |
| 10 000 appels | $1,82 |
| 100 000 appels (1 run sur 100K produits) | $18,20 |
| 100 000 produits × 1 run / jour × 30 jours (par mois, par node) | $546 |
| 100K produits × 4 nodes séparés × 1 run/jour × 30j (par mois — typique d'un workflow non optimisé) | $2 184 |
L'erreur la plus répandue dans nos prompts actuels. Le Manager voit un prompt court à l'écran ; l'input réel envoyé au LLM est massif. Pourquoi ? Parce que les variables ne sont pas encore résolues au moment où on écrit le prompt.
Multiplié par 150 000 produits × 4 runs/jour × 30 jours, l'écart représente 2,8 milliards de tokens de différence par mois — sur un seul prompt. À $0,10 / 1M tokens, ça fait $279 de plus chaque mois, pour un prompt qu'on croyait court.
Beaucoup de prompts répètent la même variable plusieurs fois pour « insister » :
Encore pire : faire raisonner le LLM avec des règles « si / alors » imbriquées.
Le LLM lit toutes les branches à chaque appel, même si une seule s'applique. Sur 150K produits, on paie 16 branches × 150K = 2,4 M de lectures de règles inutiles à chaque run. Le routage conditionnel doit se faire dans Dataflow en amont si possible, pas dans le prompt.
Chaque node a son prompt court et ciblé. Le LLM ne reçoit que la règle qui concerne ce produit-là.
L'anti-pattern le plus coûteux de nos workflows. Sur un même produit, on a parfois 4 ou 5 nodes Gen AI Feed qui font chacun un appel séparé : un pour la couleur, un pour les highlights, un pour la description, un pour les attributs GMC. Chaque node recharge la même description, relit le même contexte, refait le même travail de compréhension sémantique — et ne sort qu'un seul champ.
| Setuppar produit · Gemini 2.5 Flash-Lite | Inputtokens | Outputtokens | Coût / produitUSD | Sur 100K × 30jUSD / mois |
|---|---|---|---|---|
| 4 appels séparés (naïf) | 4 800 | 120 | $0,000528 | $1 584 |
| 1 appel structuré (optimisé) | 1 300 | 80 | $0,000162 | $486 |
Une fois qu'on a le JSON enrichi (Node 1 — Product Understanding), les nodes suivants qui génèrent du contenu — titre GMC, description, ads copy — peuvent consommer ce JSON déjà digéré au lieu de relire toute la donnée produit brute depuis zéro.
Chaque node en aval reçoit en input ~200 tokens (le JSON compact résumé par le Node 1) au lieu de ~1 200 tokens (la fiche produit brute + le contexte client). Le coût des nodes en aval est divisé par 6.
Par défaut, Dataflow injecte un « master prompt » — typiquement trois paragraphes de texte brut décrivant le rôle de l'assistant, le ton attendu et des règles génériques — devant chaque prompt de chaque node Gen AI. C'est invisible pour le Manager, c'est facturé sur chaque appel, et c'est presque toujours redondant avec ce qu'on écrit déjà dans le prompt du node.
Le master prompt n'est pas qu'une question de coût. Il pose deux problèmes simultanés, et ils se renforcent l'un l'autre.
tokens supplémentaires partent à chaque appel. Multipliés par 3 à 12 millions d'appels par mois sur un workflow client, ça pèse lourd — pour du contenu que le Manager n'a jamais écrit et ne contrôle pas.
Le master prompt définit un rôle générique (« Tu es un assistant utile… »). Quand le Manager redéfinit un rôle plus précis dans le node (« Tu es un expert mode & luxe… »), les deux se contredisent. Le LLM reçoit des instructions floues.
Sur un workflow client de 100K produits, à 1 run/jour, le master prompt seul représente :
| Configuration du workflow | Appels / mois | Coût mensuel du master prompt300 tokens × $0,10/1M |
|---|---|---|
| 4 nodes séparés, sans missing-only (naïf) | 12 000 000 | $360 |
| 4 nodes séparés, missing-only activé | 600 000 | $18 |
| 1 understanding + 3 nodes en aval, sans missing-only | 12 000 000 | $360 |
| 1 understanding + 3 nodes en aval, missing-only activé | 600 000 | $18 |
Sur un workflow naïf, c'est $360 par mois jetés par la fenêtre, par client — uniquement pour répéter trois paragraphes de texte que personne n'a relus depuis six mois. À l'échelle du portefeuille Dataiads, on est très vite sur plusieurs milliers d'euros par mois en cumul.
Dès qu'un node Gen AI définit son propre rôle dans son prompt, désactiver le master prompt sur ce node. C'est une case à cocher dans Dataflow. Moins d'une minute par node. Trois règles simples pour décider :
Le node Gen AI ne définit pas de rôle dans son prompt. Le master prompt apporte le contexte transverse minimal. Laisser activé.
Le node définit déjà son propre rôle et son ton dans son prompt. Le master prompt ne fait que répéter (et coûter). Désactiver.
Le node définit un rôle ou un ton qui contredit celui du master prompt. Double peine : on paie pour des tokens qui dégradent la qualité. Désactiver sans hésiter.
Dans Dataflow, l'option « missing product only » fait en sorte que le node ne traite que les produits qui n'ont pas encore d'output, ou dont les inputs ont changé. Sans ce réglage, à chaque run, le node retraite l'intégralité du catalogue — y compris les produits qui n'ont pas bougé depuis trois semaines.
| Type d'évolution | Volume / jour | Part du catalogue |
|---|---|---|
| Nouveaux produits | ~1 500 | 1 % |
| Produits modifiés (prix, stock, attributs) | ~6 000 | 4 % |
| Produits inchangés (à ne pas retraiter) | ~142 500 | 95 % |
produits enrichis à chaque run — y compris les 95 % qui n'ont pas bougé.
produits enrichis à chaque run. Même qualité, même fraîcheur, ×20 moins cher.
C'est le réglage le plus rentable de tous nos workflows. Sans aucune perte de qualité. Cinq minutes par workflow pour activer la case. À vérifier sur tous les pipelines actifs lors du prochain audit.
Trois cas légitimes uniquement, jamais un quatrième :
On doit enrichir tout le catalogue une fois. Une fois ce backfill terminé, on réactive missing-only.
Les outputs précédents sont invalidés. On retraite tout, une seule fois, puis on remet missing-only.
Le client demande explicitement un refresh complet. Cas rare. On documente, on exécute, on remet missing-only.
À quelle fréquence le client a-t-il vraiment besoin que ce node tourne ? On programme des runs toutes les 6h ou tous les jours par défaut, sans se poser la question. Or, sur la plupart des cas d'usage Feed Enrich, ce n'est pas nécessaire.
| Fréquence configurée | Runs / mois | Coût relatif | Sur 100K, structured + missing only |
|---|---|---|---|
| Toutes les 6h (défaut excessif) | 120 | ×24 | $680 / mois |
| Toutes les 12h | 60 | ×12 | $340 / mois |
| 1× par jour | 30 | ×6 | $57 / mois |
| 1× par semaine (suffisant pour la plupart des attributs) | 4 | ×1 — ref | $7,60 / mois |
Couleur, matière, genre, catégorie. Ces attributs ne bougent quasiment jamais. 1× par semaine suffit largement.
1× par jour uniquement si les fiches produit évoluent souvent. Sinon, 1× par semaine reste largement suffisant.
Ces flux ne passent pas par le LLM, ils sont déterministes. Fréquence libre, pas d'enjeu de coût GenAI.
Jamais en récurrent. À déclencher manuellement sur demande client uniquement.
Voici à quoi ressemble la facture mensuelle d'un workflow Feed Enrich sur Gemini 2.5 Flash-Lite, selon la taille du catalogue client et le niveau d'optimisation appliqué. Tous les chiffres sont en USD, par client, par mois.
| Catalogue | Naïf4 nodes séparés, 1 run/jour | + Prompts nettoyés−30% input | + Structured outputs1 understanding + 3 en aval | + Missing only5 % du catalogue / run | + Fréquence 1×/semcible finale |
|---|---|---|---|---|---|
| 50K produits | $1 740 | $1 290 | $567 | $28 | $3,80 |
| 100K produits | $3 480 | $2 580 | $1 134 | $57 | $7,60 |
| 250K produits | $8 700 | $6 450 | $2 835 | $142 | $18,90 |
| 500K produits | $17 400 | $12 900 | $5 670 | $284 | $37,80 |
| 1M produits | $34 800 | $25 800 | $11 340 | $567 | $75,60 |
| Catalogue | Naïf, 4 runs/jouraucune optim | Cible optimiséestructured + missing + 1×/sem | Économie / mois | Économie / an | Facteur |
|---|---|---|---|---|---|
| 50K | $6 960 | $3,80 | $6 956 | $83 475 | ×1 832 |
| 100K | $13 920 | $7,60 | $13 912 | $166 950 | ×1 832 |
| 250K | $34 800 | $18,90 | $34 781 | $417 374 | ×1 841 |
| 500K | $69 600 | $37,80 | $69 562 | $834 748 | ×1 841 |
| 1M | $139 200 | $75,60 | $139 124 | $1 669 495 | ×1 841 |
Personne ne tourne aujourd'hui en mode 100 % naïf — heureusement. La plupart de nos workflows ont déjà des bouts d'optimisation appliqués (structured ici, missing-only là). Le chiffre est donc à lire comme un potentiel de coût maximal, pas comme une facture réelle.
Le vrai message : même sur des workflows qu'on croit déjà bien optimisés, il reste presque toujours un facteur 2 à 5 à aller chercher. La checklist Manager ne sert pas à corriger l'extrême — elle sert à finir le boulot que la première vague d'optimisation a laissé inachevé.
Hypothèses de calcul. Gemini 2.5 Flash-Lite : $0,10/1M input, $0,40/1M output. Naïf = 4 nodes × 2 500 input + 100 output / produit. Nettoyé = 4 × 1 750 + 100. Structured = 1 × (1 300 in + 80 out) + 3 × (400 in + 80 out). Missing-only = 5 % du catalogue traité par run. 30 jours / mois. Workflow client typique : 1 Product Understanding + 3 nodes de génération en aval (titre GMC, description, ads copy).
À passer en revue sur chaque workflow client. Pas un audit annuel : une checklist à dégainer dès qu'un workflow est créé ou modifié.
Le réglage le plus rentable. Quelques minutes par workflow. À auditer cette semaine sur tous les pipelines actifs.
Refactor des workflows : 1 node Product Understanding + les nodes en aval consomment son JSON. Refonte ciblée sur les workflows les plus consommateurs en priorité.
Audit fréquence par workflow. Question test : « qu'est-ce qui change réellement entre deux runs ? ». Si rien — passer à 1×/sem.
Une case à cocher par node. Moins d'une minute par workflow. Petit gain de coût mais souvent un gain de qualité en prime — on supprime les contradictions de rôle.
Dédupliquer les variables, sortir les branches conditionnelles, supprimer la verbosité (majuscules, ponctuation emphatique). À faire au passage, quand on touche un workflow pour autre chose.
Sur un workflow client typique de 100K produits, on passe d'une facture de plusieurs milliers d'euros par mois à quelques dizaines d'euros — sans toucher à la qualité des outputs livrés. À l'échelle du portefeuille, ce sont des millions d'euros annuels à reconquérir, en cinq réglages.
Cette discipline n'est pas un projet ponctuel. C'est un réflexe Manager à intégrer à chaque création ou modification de workflow. La checklist se passe en cinq minutes. La facture, elle, se passe sur douze mois.