Files
_Assistant_Lead_Tech/knowledge/backend/patterns/llm-providers.md
T
MaksTinyWorkshop ef24d85d57 capitalisation: triage 95_a_capitaliser + création domaine infra
Triage des 27 propositions du buffer de capitalisation (skill
capitalisation-triage), avec vérification des doublons contre la base.

Intégré dans knowledge/ (23 entrées):
- backend: redis (compensation incrBy non-atomique), nestjs (injection
  cassée sous tsx watch; guard write mode dégradé), async (test rollback
  pipeline multi-fichiers), contracts (idempotence POST), auth (disclosure
  comptes soft-deleted), prisma (index partial soft-delete), llm-providers
  (nouveau: OAuth vs API key, prompt caching).
- frontend: tests (garde-fous parking Later), navigation (fichiers
  non-route sous src/app Expo Router), general (type client vs payload
  backend), state (fallback catch-all mapping DB→UI).
- workflow: story-tracking (statut BMAD vs narratif obsolète).
- product: general (nouveau: doc feature store sans UI).
- infra: NOUVEAU DOMAINE (traefik, tailscale, docker, docker-networking,
  reverse-proxy-paths, sidecar tailscale) + 00_INDEX.md.

Autres:
- 90_debug_et_postmortem.md: post-mortem réseau Docker partagé hors compose.
- Rejeté 3 doublons (types enum contracts, getter PrismaService, $transaction).
- Buffer 95_a_capitaliser.md purgé et restauré à son état initial.
- _projects.conf: MAJ statuts epics + ajout app-rl799.
2026-06-25 10:31:22 +02:00

2.6 KiB

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

Backend — Patterns : Fournisseurs LLM

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


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.

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.

// 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.