Applied AI · IntermĂ©diaire 🟡 · Session 8
📝 Guide du professeur
← Retour au programme 📄 Source .md

Guide Professeur — Session 8 : Infrastructure & DĂ©ploiement

Programme : Applied AI — Niveau IntermĂ©diaire Instructeur : Yann Isola DurĂ©e : 2 heures (120 minutes) Module couvert : Module 6 — Infrastructure & DĂ©ploiement


1. Vue d’ensemble de la session

Objectifs pédagogiques

À la fin de cette session, chaque participant doit ĂȘtre capable de :

  1. DĂ©crire le fossĂ© notebook → production : ce qui fonctionne « sur mon ordinateur portable » pour 1 utilisateur ne tient pas face Ă  10 000 utilisateurs — et lister les 6 chantiers qui sĂ©parent les deux mondes (authentification, latence, coĂ»ts, observabilitĂ©, sĂ©curitĂ©, montĂ©e en charge).
  2. IntĂ©grer proprement une API (Application Programming Interface, interface de programmation applicative) de LLM (Large Language Model, grand modĂšle de langage) : gestion des clĂ©s API, OAuth (Open Authorization, protocole d’autorisation dĂ©lĂ©guĂ©e), limites de dĂ©bit (rate limits), stratĂ©gies de nouvelle tentative (retry) avec backoff exponentiel (attente qui double Ă  chaque Ă©chec).
  3. Raisonner en budget de latence : combien de temps l’utilisateur peut-il attendre ? Expliquer pourquoi le streaming via SSE (Server-Sent Events, Ă©vĂ©nements envoyĂ©s par le serveur) transforme l’expĂ©rience perçue.
  4. Piloter les coĂ»ts : compter les tokens, exploiter le prompt caching (mise en cache du prompt — jusqu’à 90 % d’économie ⚠), router intelligemment (modĂšle Ă©conomique pour les tĂąches simples, modĂšle puissant pour les tĂąches difficiles).
  5. Mettre en place l’observabilitĂ© : journaliser chaque requĂȘte/rĂ©ponse, suivre la consommation de tokens, les percentiles de latence (p50, p95, p99), les taux d’erreur.
  6. Traiter les prompts comme du code : versionnage, tests, revue — et intĂ©grer une suite d’évaluations dans la CI/CD (IntĂ©gration Continue / DĂ©ploiement Continu).
  7. Choisir un patron de dĂ©ploiement : serverless (sans serveur — Lambda, Cloud Functions), conteneur (Docker), instance GPU (Graphics Processing Unit, processeur graphique) dĂ©diĂ©e — et justifier le choix selon le cas d’usage.
  8. Sécuriser la production : jamais de clé API cÎté client, assainissement des entrées (input sanitization), filtrage des sorties (output filtering).

Prérequis

Matériel nécessaire

Message central de la session

« Un prototype IA qui marche, c’est 20 % du travail. Les 80 % restants s’appellent production : authentification, latence, coĂ»ts, observabilitĂ©, sĂ©curitĂ©, montĂ©e en charge. Personne ne verra jamais ces 80 % — sauf quand ils manquent. »

RĂ©pĂ©tez cette idĂ©e sous plusieurs formes tout au long de la session. Un participant qui ne retient que cela repart avec l’essentiel : la production est une discipline, pas un dĂ©tail.

Fil conducteur narratif

Toute la session suit une seule application fil rouge : « SupportBot », un assistant de support client interne qui rĂ©pond aux questions des employĂ©s d’une entreprise de 5 000 personnes. On le suit du notebook du dĂ©veloppeur jusqu’à un service qui encaisse 10 000 requĂȘtes/jour. Chaque partie de la session rĂ©sout un problĂšme que SupportBot rencontre en grandissant :

La continuitĂ© narrative est votre meilleur outil pĂ©dagogique : chaque concept arrive comme la solution d’un problĂšme vĂ©cu par SupportBot, jamais comme une notion abstraite.


2. Déroulé minute par minute

Horaire Durée Séquence Support
0:00 – 0:05 5 min Accueil, rappel Session 7, objectifs, prĂ©sentation de SupportBot Slides 1–3
0:05 – 0:18 13 min Partie A — Le fossĂ© notebook → production Slides 4–6
0:18 – 0:33 15 min Partie B — IntĂ©gration API : auth, rate limits, retry & backoff Slides 7–11
0:33 – 0:45 12 min Partie C — Budget de latence & streaming (SSE) Slides 12–14 + dĂ©mo web (dashboard, courbe latence)
0:45 – 1:00 15 min Exercice 1 : Calculateur de coĂ»ts (sur la page web) Feuille d’exercices + webpage
1:00 – 1:05 5 min ☕ Pause courte —
1:05 – 1:20 15 min Partie D — Gestion des coĂ»ts : tokens, caching, routage de modĂšles Slides 15–18 + calculateur web
1:20 – 1:32 12 min Partie E — ObservabilitĂ©, versionnage des prompts, CI/CD Slides 19–22 + maquette dashboard web
1:32 – 1:45 13 min Exercice 2 : Concevoir une architecture de dĂ©ploiement Feuille d’exercices + constructeur web
1:45 – 1:53 8 min Partie F — Patrons de dĂ©ploiement, sĂ©curitĂ©, montĂ©e en charge Slides 23–27
1:53 – 2:00 7 min Quiz Ă©clair + Exit Tickets + annonce Session 9 Slides 28–30

Note de flexibilitĂ© : l’Exercice 3 (conception d’un tableau de bord de monitoring) est prĂ©vu comme devoir Ă  la maison ou activitĂ© bonus. Si vous prenez du retard, compressez la Partie F Ă  5 minutes en projetant seulement le tableau comparatif serverless / conteneur / GPU dĂ©diĂ© — mais ne sacrifiez jamais la Partie D (coĂ»ts) ni le passage sĂ©curitĂ© « jamais de clĂ© API cĂŽtĂ© client » : ce sont les deux protections les plus rentables pour vos participants.


3. Notes pédagogiques détaillées par séquence

0:00 – 0:05 | Accueil et cadrage

Quoi dire : « La derniĂšre session, vous avez construit des systĂšmes qui raisonnent et agissent. Aujourd’hui, question brutale : combien d’entre vous ont dĂ©jĂ  vu un prototype gĂ©nial
 qui n’est jamais sorti du notebook ? » (Mains levĂ©es garanties.) « Cette session, c’est le mode d’emploi pour franchir ce fossĂ©. »

Présentez SupportBot en 30 secondes : un assistant RAG + outils qui répond aux questions internes. Il marche parfaitement
 pour son développeur, seul, un mardi aprÚs-midi.

PiĂšge Ă  Ă©viter : ne laissez pas les non-dĂ©veloppeurs dĂ©crocher dĂšs la premiĂšre minute. Annoncez explicitement : « ZĂ©ro ligne de code Ă  Ă©crire aujourd’hui. On raisonne en architecte, pas en dĂ©veloppeur. Les dĂ©cisions qu’on va apprendre Ă  prendre sont des dĂ©cisions de gestion de projet et de budget autant que des dĂ©cisions techniques. »


0:05 – 0:18 | Partie A — Le fossĂ© notebook → production

Idée maßtresse : « ça marche sur mon ordinateur » et « ça sert 10 000 utilisateurs » sont deux métiers différents.

Déroulé :

  1. Projetez le tableau des différences (slide 5). Faites-le vivre avec SupportBot :
    • Notebook : 1 utilisateur (le dĂ©veloppeur), clĂ© API en clair dans le code, aucune gestion d’erreur, coĂ»t invisible, latence « on s’en fiche ».
    • Production : 10 000 requĂȘtes/jour, secrets protĂ©gĂ©s, pannes rĂ©seau inĂ©vitables, facture mensuelle scrutĂ©e par la direction, utilisateurs qui abandonnent aprĂšs 5 secondes.
  2. Introduisez les 6 chantiers (slide 6) : authentification & intégration API, latence, coûts, observabilité, sécurité, montée en charge. Annoncez que la session les traite dans cet ordre.

Analogie qui fonctionne bien : le food-truck vs le restaurant. La recette (le prompt, le modĂšle) est la mĂȘme. Mais le restaurant a besoin de rĂ©servations (rate limits), d’une cuisine dimensionnĂ©e (scaling), d’une comptabilitĂ© (coĂ»ts), d’hygiĂšne contrĂŽlĂ©e (sĂ©curitĂ©) et d’un chef qui sait ce qui se passe dans sa salle (observabilitĂ©).

Question Ă  poser Ă  la salle : « Quel est, selon vous, le chantier le plus souvent oubliĂ© ? » RĂ©ponse attendue et correcte : l’observabilitĂ© — parce qu’elle ne se voit pas tant que tout va bien.


0:18 – 0:33 | Partie B — IntĂ©gration API : authentification, rate limits, retry

Concepts à couvrir, dans l’ordre :

  1. ClĂ©s API (slide 8) : une clĂ© API est un mot de passe de service. RĂšgles d’or :
    • Jamais dans le code source (ni dans Git, l’outil de gestion de versions).
    • Jamais cĂŽtĂ© client (navigateur, application mobile) — quiconque ouvre les outils dĂ©veloppeur du navigateur peut la lire et la voler.
    • Toujours dans des variables d’environnement ou un gestionnaire de secrets (AWS Secrets Manager, HashiCorp Vault, etc.).
    • Rotation rĂ©guliĂšre : une clĂ© doit pouvoir ĂȘtre rĂ©voquĂ©e sans tout casser.
  2. OAuth (slide 9) : quand l’application agit au nom d’un utilisateur (accĂ©der Ă  son agenda Google, son CRM — Customer Relationship Management, gestion de la relation client), on n’utilise pas une clĂ© API globale mais OAuth : l’utilisateur autorise explicitement, l’application reçoit un jeton (token d’accĂšs) limitĂ© et rĂ©vocable. Simplifiez : « clĂ© API = badge de l’entreprise ; OAuth = badge visiteur nominatif, avec date d’expiration ».
  3. Rate limits (slide 10) : les fournisseurs limitent le dĂ©bit — typiquement en RPM (Requests Per Minute, requĂȘtes par minute) et TPM (Tokens Per Minute, tokens par minute). ⚠ Les chiffres exacts varient selon le fournisseur et le niveau de compte : donnez un ordre de grandeur (ex. quelques centaines Ă  quelques milliers de RPM) et insistez sur le rĂ©flexe : lire la rĂ©ponse HTTP 429 Too Many Requests et l’en-tĂȘte retry-after.
  4. Retry & backoff exponentiel (slide 11) : quand un appel Ă©choue (erreur 429 ou 5xx), on rĂ©essaie — mais pas immĂ©diatement et pas indĂ©finiment :
    • Tentative 1 Ă©choue → attendre 1 s → tentative 2 → attendre 2 s → tentative 3 → attendre 4 s → tentative 4 → abandon propre.
    • Ajouter du jitter (variation alĂ©atoire) pour Ă©viter que 1 000 clients rĂ©essaient exactement au mĂȘme instant (effet « troupeau » — thundering herd).
    • Ne jamais rĂ©essayer les erreurs 400/401/403 (requĂȘte invalide, authentification manquante, interdit) : rĂ©essayer une requĂȘte invalide donnera le mĂȘme rĂ©sultat invalide.

Anecdote SupportBot : « Lundi matin, 9 h 00 : 800 employĂ©s ouvrent SupportBot en mĂȘme temps. Sans retry ni backoff, 30 % des requĂȘtes Ă©chouent avec une erreur 429 et les utilisateurs voient “Erreur serveur”. Avec backoff + jitter : tout le monde est servi, avec 2–3 secondes d’attente pour les moins chanceux. MĂȘme code mĂ©tier, expĂ©rience radicalement diffĂ©rente. »

Erreur frĂ©quente des participants : confondre rate limit (limitation volontaire du fournisseur) et panne (indisponibilitĂ© involontaire). Les deux se gĂšrent par retry, mais le rate limit se prĂ©vient aussi : lisser le trafic, mettre en file d’attente, demander une augmentation de quota.


0:33 – 0:45 | Partie C — Budget de latence & streaming

Concepts :

  1. Le budget de latence (slide 12) : partir de l’utilisateur, pas de la technique. RepĂšres UX (User eXperience, expĂ©rience utilisateur) classiques :
    • < 1 s : perçu comme instantanĂ© ou fluide.
    • 1–3 s : acceptable avec un indicateur d’attente.
    • 3–10 s : frustrant ; nĂ©cessite du streaming ou une barre de progression honnĂȘte.
    • > 10 s : Ă  traiter en asynchrone (« nous vous notifierons quand ce sera prĂȘt »).
  2. DĂ©composer la latence (slide 13) : rĂ©seau aller (+ ~50–100 ms) + TTFT (Time To First Token, dĂ©lai avant le premier token — souvent 200 ms Ă  1 s ⚠) + gĂ©nĂ©ration (proportionnelle au nombre de tokens de sortie) + rĂ©seau retour. Le poste dominant est presque toujours la gĂ©nĂ©ration des tokens de sortie. ConsĂ©quence directe : une rĂ©ponse deux fois plus courte est ~deux fois plus rapide — le contrĂŽle de la longueur de sortie est une optimisation de latence.
  3. Streaming via SSE (slide 14) : au lieu d’attendre la rĂ©ponse complĂšte, le serveur envoie les tokens au fil de la gĂ©nĂ©ration. SSE = Server-Sent Events, un mĂ©canisme HTTP standard oĂč la connexion reste ouverte et le serveur pousse des Ă©vĂ©nements. La latence totale ne change presque pas, mais la latence perçue s’effondre : l’utilisateur voit le premier mot en moins d’une seconde.

DĂ©mo web : ouvrez la page interactive, onglet « Monitoring », montrez la ligne TTFT vs latence totale. Puis posez la question : « Que prĂ©fĂ©rez-vous : une rĂ©ponse complĂšte en 8 secondes d’écran figĂ©, ou un premier mot Ă  0,8 s et la suite qui dĂ©file ? » C’est exactement pourquoi toutes les interfaces de chat IA streament.

Point subtil Ă  mentionner : le streaming complique lĂ©gĂšrement le code (gestion d’évĂ©nements partiels, gestion d’erreur en cours de flux) et le filtrage de sortie (on filtre quoi, si la rĂ©ponse arrive par morceaux ?). Rien d’insurmontable, mais ce n’est pas gratuit.


0:45 – 1:00 | Exercice 1 — Calculateur de coĂ»ts (15 min)

Organisation : binĂŽmes, un ordinateur par binĂŽme, page web onglet « Calculateur de coĂ»ts ». La feuille d’exercices guide pas Ă  pas.

Objectif pédagogique caché : faire découvrir par la manipulation trois vérités :

  1. Les tokens de sortie coĂ»tent plus cher que les tokens d’entrĂ©e (souvent 3 Ă  5× ⚠).
  2. Le prompt caching change radicalement l’équation quand le prompt systĂšme est long et rĂ©pĂ©tĂ©.
  3. Le routage de modÚles (petit modÚle pour 80 % des cas) est souvent la plus grosse économie disponible.

Circulation dans la salle : repĂ©rez les binĂŽmes qui ont fini tĂŽt et lancez-leur le dĂ©fi bonus (« trouvez la configuration qui divise la facture par 10 sans changer le volume de requĂȘtes »).

Restitution (3 derniĂšres minutes) : demandez Ă  deux binĂŽmes leurs chiffres. Écrivez au tableau la facture « naĂŻve » vs la facture « optimisĂ©e ». L’écart (souvent 5–15×) est le moment mĂ©morable de la session.


1:00 – 1:05 | ☕ Pause

Pendant la pause, laissez projetée la maquette du dashboard de monitoring (métriques animées) : elle intrigue et prépare la Partie E.


1:05 – 1:20 | Partie D — Gestion des coĂ»ts

Concepts, appuyĂ©s sur ce que l’Exercice 1 vient de faire vivre :

  1. Compter les tokens (slide 15) : un token ≈ Ÿ de mot en anglais, un peu moins en français (≈ 1,3–2 tokens par mot ⚠ selon le tokeniseur). La facture = tokens d’entrĂ©e × prix d’entrĂ©e + tokens de sortie × prix de sortie. Ordres de grandeur ⚠ (mi-2026, Ă  vĂ©rifier avant chaque session) : de ~0,1–1 $ par million de tokens d’entrĂ©e pour les petits modĂšles Ă  ~3–15 $ pour les grands ; la sortie coĂ»te typiquement 3–5× l’entrĂ©e.
  2. Prompt caching (slide 16) : si le dĂ©but du prompt est identique d’une requĂȘte Ă  l’autre (prompt systĂšme, documents de rĂ©fĂ©rence, dĂ©finitions d’outils), le fournisseur peut le mettre en cache et facturer les tokens en cache Ă  une fraction du prix — jusqu’à 90 % d’économie sur la partie cachĂ©e ⚠. RĂšgle pratique : mettre tout le contenu stable au dĂ©but du prompt, le contenu variable (question de l’utilisateur) Ă  la fin.
  3. Routage de modĂšles (slide 17) : toutes les requĂȘtes ne se valent pas. « Quels sont les horaires du support ? » n’a pas besoin du mĂȘme modĂšle que « Analyse ce contrat de 40 pages ». Architecture : un classifieur (ou un petit modĂšle, ou des rĂšgles simples) route chaque requĂȘte vers le modĂšle le moins cher capable de la traiter. En pratique, 70–90 % ⚠ du trafic d’un assistant de support relĂšve du modĂšle Ă©conomique.
  4. Plafonds et alertes (slide 18) : budget mensuel de tokens, alerte Ă  50 %/80 %/100 %, coupure ou dĂ©gradation gracieuse (bascule vers le petit modĂšle) en cas de dĂ©passement. « Une facture surprise de 20 000 € tue plus de projets IA qu’un bug. »

PiĂšge pĂ©dagogique : ne transformez pas cette partie en cours de tarification — les prix changent tous les trimestres. Enseignez la mĂ©thode de calcul et le rĂ©flexe « je vĂ©rifie la grille tarifaire du jour », pas les chiffres.


1:20 – 1:32 | Partie E — ObservabilitĂ©, versionnage des prompts, CI/CD

Concepts :

  1. Journaliser chaque requĂȘte/rĂ©ponse (slide 19) : horodatage, identifiant de requĂȘte, version du prompt, modĂšle utilisĂ©, tokens entrĂ©e/sortie, latence, statut. Sans journal, le premier « ça ne marche pas » d’un utilisateur est indiagnosticable. Attention RGPD (RĂšglement GĂ©nĂ©ral sur la Protection des DonnĂ©es) : dĂ©finir la durĂ©e de rĂ©tention et anonymiser/pseudonymiser si les prompts contiennent des donnĂ©es personnelles.
  2. Percentiles de latence (slide 20) : la moyenne ment. p50 (mĂ©diane) = l’expĂ©rience typique ; p95 = l’expĂ©rience d’1 utilisateur sur 20 ; p99 = les pires cas. Un service peut afficher 1,2 s de moyenne et 9 s au p99 — et ce sont les utilisateurs du p99 qui se plaignent et partent. Les SLA (Service Level Agreement, engagement de niveau de service) s’écrivent en percentiles : « p95 < 3 s », jamais « moyenne < 2 s ».
  3. Taux d’erreur et alertes (slide 21) : seuils d’alerte sur le taux d’erreur (ex. > 2 % sur 5 minutes), la latence p95, le budget de tokens. Une alerte doit ĂȘtre actionnable : si personne ne sait quoi faire quand elle sonne, supprimez-la ou documentez-la.
  4. Les prompts sont du code (slide 22) : versionnĂ©s (Git), revus (revue de pairs), testĂ©s (suite d’évaluations). CI/CD pour l’IA : Ă  chaque PR (Pull Request, demande de fusion de code) qui modifie un prompt, la suite d’évals tourne automatiquement — tests de rĂ©gression de prompts. « Changer un mot dans un prompt peut casser 15 % des rĂ©ponses. Sans Ă©vals en CI, vous le dĂ©couvrez en production, via vos utilisateurs. »

DĂ©mo web : maquette du dashboard — montrez les mĂ©triques qui bougent, le p95 qui dĂ©croche, l’alerte budget qui passe Ă  l’orange. Demandez : « Quelle mĂ©trique regarderiez-vous en premier lundi matin ? »

Lien avec les sessions prĂ©cĂ©dentes : rappelez que la suite d’évaluations a Ă©tĂ© construite conceptuellement dans les sessions consacrĂ©es Ă  la qualitĂ© des prompts — ici, on l’automatise.


1:32 – 1:45 | Exercice 2 — Architecture de dĂ©ploiement (13 min)

Organisation : mĂȘmes binĂŽmes. Cahier des charges dans la feuille d’exercices (trois scĂ©narios au choix : chatbot RH interne, API de rĂ©sumĂ© de documents Ă  fort volume, assistant temps rĂ©el cĂŽtĂ© client). Le constructeur d’architecture de la page web sert de support visuel : glisser les composants (passerelle API, fournisseur LLM, cache, file d’attente, base de donnĂ©es) et lire l’estimation de latence.

Ce que vous évaluez en circulant :

Restitution (3 min) : un binĂŽme prĂ©sente son architecture ; la salle challenge. Vous jouez l’avocat du diable : « Que se passe-t-il si le fournisseur LLM tombe 10 minutes ? » (RĂ©ponses attendues : retry, message dĂ©gradĂ©, file d’attente qui absorbe, Ă©ventuellement fournisseur de secours.)


1:45 – 1:53 | Partie F — Patrons de dĂ©ploiement, sĂ©curitĂ©, montĂ©e en charge

Cette partie est volontairement dense et rapide — l’Exercice 2 a dĂ©jĂ  fait manipuler les concepts.

  1. Trois patrons de déploiement (slide 24) :
    • Serverless (Lambda, Cloud Functions) : zĂ©ro serveur Ă  gĂ©rer, facturation Ă  l’exĂ©cution, montĂ©e en charge automatique. Limites : durĂ©e d’exĂ©cution plafonnĂ©e, dĂ©marrage Ă  froid (cold start). IdĂ©al pour trafic irrĂ©gulier et Ă©quipes rĂ©duites.
    • Conteneur (Docker, orchestrĂ© par exemple avec Kubernetes) : portable, reproductible, contrĂŽle fin. CoĂ»t de compĂ©tence plus Ă©levĂ©. IdĂ©al pour un trafic soutenu et rĂ©gulier.
    • Instance GPU dĂ©diĂ©e : uniquement si vous hĂ©bergez le modĂšle vous-mĂȘme (open-weights) — souverainetĂ© des donnĂ©es, coĂ»t fixe Ă©levĂ©, expertise pointue. La majoritĂ© des projets n’en a pas besoin : l’appel API Ă  un fournisseur suffit.
  2. SĂ©curitĂ© (slide 25) : les trois rĂšgles non nĂ©gociables — clĂ© API jamais cĂŽtĂ© client (toujours un backend intermĂ©diaire), assainissement des entrĂ©es (longueur maximale, dĂ©tection d’injection de prompt), filtrage des sorties (donnĂ©es sensibles, contenu inappropriĂ©) avant affichage.
  3. MontĂ©e en charge (slide 26) : montĂ©e horizontale (plusieurs instances derriĂšre un rĂ©partiteur de charge — load balancer) plutĂŽt que verticale (une machine plus grosse). Pour les traitements longs ou massifs : architecture Ă  file d’attente (queue) — le client dĂ©pose une tĂąche, des workers la traitent au rythme des rate limits, le client est notifiĂ©. C’est LE patron pour le traitement par lots.

Raccourci si retard : projetez uniquement le tableau comparatif des trois patrons et la slide sĂ©curitĂ©. La file d’attente a dĂ©jĂ  Ă©tĂ© vue dans l’Exercice 2.


1:53 – 2:00 | Quiz, Exit Tickets, clîture


4. Les 5 Exit Tickets

À distribuer (papier ou formulaire) dans les 5 derniĂšres minutes. Chaque participant rĂ©pond Ă  une question (distribuez-les en alternance) ou aux cinq en version courte.

  1. « Citez deux diffĂ©rences entre un prototype en notebook et un service en production, et expliquez pourquoi elles comptent. » Attendu : deux Ă©lĂ©ments parmi — gestion des secrets, retry/rate limits, latence maĂźtrisĂ©e, suivi des coĂ»ts, observabilitĂ©, sĂ©curitĂ©, montĂ©e en charge — avec une justification d’une phrase.

  2. « Votre application reçoit une erreur HTTP 429. Que signifie-t-elle et que doit faire votre code ? » Attendu : rate limit dĂ©passĂ© (Too Many Requests) → attendre puis rĂ©essayer avec backoff exponentiel (+ jitter), en respectant l’en-tĂȘte retry-after s’il est prĂ©sent. Ne pas marteler l’API.

  3. « Expliquez en deux phrases pourquoi le streaming SSE amĂ©liore l’expĂ©rience utilisateur sans rĂ©duire la latence totale. » Attendu : les tokens sont affichĂ©s au fil de la gĂ©nĂ©ration ; le premier token arrive en < 1 s, donc la latence perçue chute, mĂȘme si la gĂ©nĂ©ration complĂšte prend le mĂȘme temps.

  4. « Donnez deux leviers pour rĂ©duire la facture d’une application LLM sans rĂ©duire le volume de requĂȘtes. » Attendu : deux parmi — prompt caching (contenu stable en dĂ©but de prompt), routage vers un modĂšle moins cher pour les tĂąches simples, rĂ©duction de la longueur des sorties, rĂ©duction du contexte injectĂ© (meilleur RAG).

  5. « Pourquoi dit-on que “les prompts sont du code” ? Citez une pratique concrĂšte qui en dĂ©coule. » Attendu : un changement de prompt change le comportement du systĂšme comme un changement de code → versionnage Git, revue de pairs, tests de rĂ©gression (suite d’évals) exĂ©cutĂ©s en CI/CD Ă  chaque modification.

Exploitation : lisez les tickets avant la Session 9. Si plus de 30 % des réponses au ticket 2 confondent 429 et panne serveur, prévoyez 5 minutes de rappel en ouverture de la session suivante.


5. Questions frĂ©quentes des participants (et rĂ©ponses prĂȘtes)

« Pourquoi ne pas appeler l’API du fournisseur directement depuis le navigateur ? Ce serait plus simple. » Parce que la clĂ© API serait visible par quiconque ouvre les outils dĂ©veloppeur du navigateur (F12 → onglet RĂ©seau). Elle serait volĂ©e en quelques heures et utilisĂ©e Ă  vos frais. Un backend intermĂ©diaire — mĂȘme minuscule, mĂȘme serverless — est obligatoire. C’est la rĂšgle de sĂ©curitĂ© n° 1 de la session.

« Le prompt caching, c’est nous qui le gĂ©rons ou le fournisseur ? » Le fournisseur hĂ©berge le cache, mais vous structurez le prompt pour en profiter : contenu stable au dĂ©but, contenu variable Ă  la fin, et selon les fournisseurs un marqueur explicite de point de cache. Si votre prompt systĂšme change Ă  chaque requĂȘte (horodatage dynamique, par exemple), le cache ne sert Ă  rien.

« Faut-il un GPU pour dĂ©ployer une application IA ? » Non, dans la grande majoritĂ© des cas. Si vous appelez l’API d’un fournisseur (Anthropic, OpenAI, Mistral
), le GPU est chez lui. Vous n’avez besoin de GPU que si vous hĂ©bergez vous-mĂȘme un modĂšle open-weights — un choix qui se justifie par la souverainetĂ© des donnĂ©es ou un volume Ă©norme, pas par dĂ©faut.

« Combien coĂ»te vraiment une application comme SupportBot ? » ⚠ Cela dĂ©pend des tarifs du jour, mais la mĂ©thode est stable : volume quotidien × (tokens d’entrĂ©e × prix d’entrĂ©e + tokens de sortie × prix de sortie), puis appliquer caching et routage. L’Exercice 1 donne la mĂ©thode ; refaites le calcul avec la grille tarifaire du moment. Ordre de grandeur : de quelques dizaines Ă  quelques milliers d’euros/mois selon le volume et l’optimisation.

« La moyenne de latence de notre service est bonne, pourquoi les utilisateurs se plaignent-ils ? » Parce que la moyenne cache la queue de distribution. Regardez le p95 et le p99 : si le p99 est Ă  9 s, 1 requĂȘte sur 100 est insupportable — et ces utilisateurs-lĂ  sont bruyants. Engagez-vous sur des percentiles, pas des moyennes.

« On a dĂ©jĂ  une CI/CD pour notre code. Qu’est-ce qui change avec l’IA ? » Deux ajouts : (1) la suite d’évaluations tourne Ă  chaque PR qui touche un prompt ou un paramĂštre de modĂšle — ce sont les tests unitaires du comportement du modĂšle ; (2) les sorties Ă©tant non dĂ©terministes, les tests portent sur des critĂšres (format respectĂ©, prĂ©sence d’informations clĂ©s, score d’un juge) plutĂŽt que sur une Ă©galitĂ© stricte.


6. Matériel de secours (si la technique lùche)