---
title: "Backend — Patterns : Fournisseurs LLM"
domain: backend
bucket: patterns
tags: [llm, anthropic, openai, api-key, oauth, prompt-caching, couts]
applies_to: [analysis, implementation, architecture]
severity: medium
validated_on: 2026-06-25
source_projects: [_Assistant_Cuisine]
---

# Backend — Patterns : Fournisseurs LLM

> Extrait de la base de connaissance Lead_tech. Voir `knowledge/backend/patterns/README.md` pour l'index complet.

---

<a id="pattern-oauth-consumer-vs-api-key"></a>
## OAuth abonnement consumer ≠ API key — ne pas mélanger les deux usages

Tous les fournisseurs LLM (Anthropic, OpenAI, Google) séparent strictement deux mondes :

| Type | Auth | Usage prévu | Coût |
|---|---|---|---|
| **Abonnement consumer** (Claude Pro/Max, ChatGPT Plus) | OAuth via app officielle | usage interactif personnel via clients officiels (desktop, web, plugin IDE) | forfait mensuel |
| **API platform** | API key | usage programmatique, multi-users, services tiers, prod | pay-per-token |

### Règle

- Ne **jamais** utiliser les credentials OAuth d'un abonnement consumer pour servir une application à plusieurs utilisateurs. Anthropic l'interdit explicitement (ToS) ; les autres le tolèrent moins ouvertement mais le principe est identique. Risque concret : bannissement du compte si détecté.
- Pour toute application applicative (chatbot, intégration produit), prendre une **API key séparée**, indépendante de l'abonnement consumer.

---

<a id="pattern-prompt-caching-system-prompt-stable"></a>
## Prompt caching obligatoire dès qu'un gros system prompt est stable

Tout système ayant un system prompt volumineux et stable (knowledge base, format de sortie, persona) DOIT activer le prompt caching côté fournisseur. La portion cachée est facturée à une fraction du tarif normal (ordre de grandeur : ~10 %), ce qui divise le coût input par 5 à 10 sur un usage où le system prompt domine.

```ts
// OpenAI : promptCacheKey via provider metadata
streamText({
  model: openai("gpt-4.1-mini"),
  system: bigStaticPrompt,
  experimental_providerMetadata: {
    openai: { promptCacheKey: "myapp-system-v1" },
  },
});

// Anthropic : marquage explicite des blocs cacheables dans messages (cache_control)
```

### Conséquences sur les coûts

- Le **coût marginal** d'un nouvel utilisateur est quasi nul tant que le system prompt domine le volume de tokens.
- Pour un usage léger (quelques conversations/jour, prompt caching actif), prévoir un budget mensuel de l'ordre de quelques euros.
- Toujours poser un **budget cap** côté console fournisseur pour éviter toute dérive.

---
