Ingénierie des coûts LLM sur SAP — AI Units, budgets de jetons, mise en cache
À jour au 2026-09-25
Qu'est-ce que Ingénierie des coûts LLM sur SAP ?
C128 et C333 expliquent comment SAP attribue et facture les dépenses d'IA générative ; cette fiche est la boîte à outils du praticien pour les réduire — mise en cache explicite des prompts (Anthropic Claude et Amazon Nova uniquement, TTL par défaut de cinq minutes), consommation par lots pour les appels LLM natifs en masse à un coût documenté inférieur aux appels synchrones, et les réglages de budget de jetons et de limites de débit qui transforment un appel de modèle ouvert en appel borné.
Où l'ingénierie des coûts se situe par rapport à l'attribution des coûts
C128 explique comment les dépenses de SAP AI Core sont attribuées — jetons vers jetons GenAI vers unités de capacité, granularité par groupe de ressources, les labels ajoutés pour la refacturation. C333 explique les couches commerciales dans lesquelles s'inscrivent Joule et l'IA embarquée — AI Units, tarification par action d'agent. Aucune des deux ne traite de la réduction de la facture elle-même ; c'est l'objet de cette fiche. La chaîne de comptage que décrivent les deux fiches reste le point de départ : les jetons d'entrée et de sortie (la sortie légèrement plus chère) se convertissent en jetons GenAI selon des taux propres à chaque modèle que SAP documente dans la Note SAP 3437766, et les jetons GenAI deviennent les unités de capacité sur la facture. Chaque levier ci-dessous agit quelque part sur cette chaîne — en évitant les jetons entièrement (mise en cache), en évitant la surprime synchrone (traitement par lots), ou en bornant les jetons qu'un appel est autorisé à dépenser (budgets et limites).
Pourquoi c'est important
- Un pipeline RAG avec un long prompt système statique et sans cache_control paie le plein tarif sur ce préfixe à chaque appel — pour les modèles Claude ou Nova, c'est une remise entièrement laissée de côté.
- Faire transiter un job de classification en masse nocturne par l'orchestration plutôt que par la consommation par lots coûte à la fois plus cher selon la documentation de SAP elle-même et ajoute une gestion des limites de débit côté client dont la consommation par lots n'a pas besoin.
- Un max_completion_tokens non défini n'est pas une valeur par défaut sûre — il autorise silencieusement le maximum propre du modèle, exactement le genre de détail qui transforme l'estimation de jetons d'un pilote en mauvaise surprise sur la facture de production.
Points clés
- Chaîne de comptage (partagée avec C128) : jetons d'entrée/sortie -> jetons GenAI (taux propre au modèle, Note SAP 3437766) -> unités de capacité facturées.
- La mise en cache explicite des prompts (cache_control) ne fonctionne que pour Anthropic Claude (jusqu'à 4 points de rupture : tools, system, messages) et Amazon Nova (system/messages, ~1 point de rupture). OpenAI/Gemini n'ont qu'une mise en cache implicite, non configurable.
- Le TTL de cache par défaut est de 5 minutes ; certains modèles Anthropic prennent en charge un TTL facultatif d'1 heure.
- La consommation par lots est documentée comme moins chère que les appels synchrones, retente automatiquement, et ne nécessite aucune gestion de limite de débit côté client — mais ne prend en charge que les appels LLM natifs, pas l'orchestration (pas de grounding/masquage/filtrage).
- La consommation par lots est limitée UE/US, hors prod-euonly et sovereign cloud, et nécessite un secret d'object store (S3, Azure Blob, GCS, Alibaba OSS, ou HANA Cloud Data Lake).
- Les limites de débit RPM sont par modèle et par tenant ; un 429 coûte de la latence et un risque de nouvelle tentative, pas une facturation supplémentaire en soi — relever la limite ne réduit pas la dépense.
- max_completion_tokens est obligatoire pour les modèles Anthropic ; non défini pour tout autre modèle, l'orchestration applique le maximum propre à ce modèle.
- Les listes de repli (config.modules en tableau) gèrent les 408/429/5xx sur les appels sans streaming en changeant de modèle plutôt qu'en retentant aveuglément.
Termes employés sur cette page
- Jeton GenAI
- Une unité de comptage virtuelle représentant l'usage de jetons propre à un modèle, utilisée pour calculer la facturation en unités de capacité (Note SAP 3437766).
- cache_control
- Le champ d'orchestration V2 marquant un bloc de prompt comme point de rupture de cache, pris en charge uniquement pour les modèles Anthropic Claude et Amazon Nova.
- Mise en cache implicite
- Mise en cache de contexte par défaut, non configurable, activée pour les modèles OpenAI et Gemini dans l'orchestration.
- Consommation par lots
- Traitement asynchrone de nombreuses requêtes LLM natives depuis un fichier, documenté comme moins cher que les appels synchrones mais indisponible pour les requêtes d'orchestration.
- Limite RPM
- Un plafond de Requêtes Par Minute par modèle et par tenant ; le dépasser renvoie un HTTP 429.
- Liste de repli
- config.modules passé sous forme de tableau afin que l'orchestration change de modèle en cas de région non prise en charge ou, sans streaming, sur 408/429/5xx.
Sources
- SAP AI Core docs (SAP-docs GitHub, Sep 2026) — Prompt Caching (cache_control, supported models, TTL, response fields)
- SAP AI Core docs — Batch Consumption (native-LLM-only, regions, object store providers, documented cost reduction)
- SAP AI Core docs — Rate Limit Management (RPM per model/tenant, 429, resource-group thresholds)
- SAP AI Core docs — Metering and Pricing for Generative AI (tokens, GenAI tokens, capacity units, worked example)
- SAP AI Core docs — Orchestration Workflow V2 (model block, max_completion_tokens, timeout, max_retries)
Fiche complète réservée aux abonnés. Ce que la fiche complète ajoute : le cadre de décision complet · les pièges courants et leur correctif · l'aide-mémoire · les blocs de code · les chiffres à citer.