Histoire d'Anthropic et Vision
Objectifs
- Comprendre la fondation d'Anthropic et sa mission
- Connaitre l'approche Constitutional AI
- Situer Claude dans l'histoire de l'IA generative
En 30 ans dans l'IA, j'ai vu l'evolution depuis les reseaux de neurones simples jusqu'aux LLMs d'aujourd'hui. Anthropic represente un tournant majeur : une entreprise fondee non pas pour aller le plus vite, mais pour aller de la maniere la plus sure. Cette philosophie change tout dans la facon de concevoir des architectures IA.
Les Fondateurs
Anthropic a ete fondee en 2021 par Dario Amodei (CEO, ex-VP Research chez OpenAI) et Daniela Amodei (President, ex-VP Operations chez OpenAI). Ils ont quitte OpenAI avec une conviction : l'IA avancee necessite une approche safety-first fondamentalement differente.
L'equipe fondatrice comprend plusieurs chercheurs de pointe en ML, convaincus que la course a la puissance sans garde-fous represente un risque existentiel.
Chronologie d'Anthropic
2021 βββββ Fondation d'Anthropic (San Francisco)
β Dario & Daniela Amodei + equipe ex-OpenAI
β Premiere levee : $124M (Jaan Tallinn, etc.)
β
2022 βββββ Publication du papier "Constitutional AI"
β Concept revolutionnaire : IA qui s'auto-evalue
β Levee Series B : $580M
β
2023 βββββ Claude 1.0 (Mars) - Premier modele public
β Claude 2.0 (Juillet) - 100K contexte
β Claude 2.1 (Nov) - 200K contexte, tool use
β Investissement Google : $300M
β Investissement Amazon : $4B
β
2024 βββββ Claude 3 (Mars) - Opus/Sonnet/Haiku
β Claude 3.5 Sonnet (Juin) - SOTA coding
β Claude 3.5 Haiku (Oct) - Ultra-rapide
β MCP (Model Context Protocol) lance
β
2025 βββββ Claude 4.0, puis Sonnet 4.5, Haiku 4.5
β Claude Code CLI - Agents pour developpeurs
β Extended Thinking - Raisonnement visible
β
2026 βββββ Opus 4.6 - Le plus capable a ce jour
1M tokens contexte, agents autonomes
Mission et Philosophie
La mission d'Anthropic : "The responsible development and maintenance of advanced AI for the long-term benefit of humanity."
Constitutional AI (CAI)
Constitutional AI est l'innovation cle d'Anthropic. Au lieu d'utiliser uniquement du feedback humain (RLHF), Claude est entraine avec des principes constitutionnels : un ensemble de regles ethiques et comportementales que le modele utilise pour s'auto-evaluer et s'auto-corriger. C'est comme donner une "constitution" a une IA.
Financement massif
Anthropic a leve plus de $7 milliards aupres d'investisseurs majeurs : Google ($2B+), Amazon ($4B), Spark Capital, et d'autres. Ce financement permet une recherche independante sur la securite de l'IA a long terme.
APPROCHE TRADITIONNELLE APPROCHE ANTHROPIC
βββββββββββββββββββββ ββββββββββββββββββββββ
1. Construire le modele 1. Definir les principes
2. Tester la puissance 2. Entrainer avec contraintes
3. Ajouter safety apres 3. Safety integree (CAI)
4. Deployer 4. Tester securite
5. Patcher les problemes 5. Deployer prudemment
6. Monitorer continuellement
Risque: Safety = afterthought Safety = fondation
Pourquoi c'est important pour un architecte
En tant qu'architecte IA, comprendre la philosophie d'Anthropic vous aide a :
- Concevoir des systemes responsables - Integrer la securite des le design
- Anticiper les comportements - Claude refuse certaines demandes par design
- Choisir le bon provider - Anthropic vs OpenAI vs Google selon vos contraintes
- Communiquer avec les stakeholders - Expliquer les choix de securite IA
Quiz - Histoire d'Anthropic
1. Qui a fonde Anthropic ?
2. Quelle est l'innovation cle d'Anthropic pour la securite IA ?
3. En quelle annee Claude 3 (Opus/Sonnet/Haiku) a-t-il ete lance ?
4. Combien Anthropic a-t-il leve au total (approximativement) ?
L'ecosysteme Claude
Objectifs
- Connaitre tous les produits et services Claude
- Comprendre les differents canaux d'acces
- Choisir le bon produit selon le cas d'usage
Vue d'ensemble de l'ecosysteme
βββββββββββββββββββββββββββββββ
β ANTHROPIC CLOUD β
β (Modeles Claude) β
ββββββββββββ¬βββββββββββββββββββ
β
ββββββββββββ¬ββββββββββββΌββββββββββββ¬βββββββββββ
β β β β β
ββββββΌββββ βββββΌβββββ βββββΌβββββ βββββΌβββββ ββββΌββββββ
βClaude β β API β βClaude β β AWS β βGoogle β
β .ai β βDirecte β β Code β βBedrock β βVertex β
β(Web) β β(HTTP) β β(CLI) β β β β AI β
ββββββββββ ββββββββββ ββββββββββ ββββββββββ ββββββββββ
Utilisateur Developpeur Developpeur Enterprise Enterprise
final API CLI/Agent AWS native GCP native
Les produits en detail
| Produit | Cible | Acces | Cas d'usage |
|---|---|---|---|
| Claude.ai | Tous | Web/Mobile | Conversations, artefacts, projets, analyse documents |
| API Anthropic | Developpeurs | HTTP REST | Integration dans applications, chatbots, pipelines |
| Claude Code | Developpeurs | CLI Terminal | Coding, refactoring, agents, exploration codebase |
| AWS Bedrock | Enterprise | AWS SDK | Integration AWS native, compliance, VPC |
| Google Vertex AI | Enterprise | GCP SDK | Integration GCP native, BigQuery, GKE |
| Claude Teams | Equipes | Web | Collaboration, projets partages, admin |
| Claude Enterprise | Grandes Org. | Web+API | SSO, RBAC, audit, data retention, 500K contexte |
Claude.ai - Les offres
| Feature | Free | Pro ($20/mois) | Teams ($30/mois) | Enterprise |
|---|---|---|---|---|
| Modeles | Sonnet | Tous (Opus inclus) | Tous | Tous |
| Usage | Limite | 5x plus | Priorite | Illimite |
| Projets | Oui | Oui | Partages | Organisation |
| Artefacts | Oui | Oui | Oui | Oui |
| SSO/RBAC | Non | Non | Basique | Complet |
| Admin Console | Non | Non | Oui | Avance |
Choisir le bon canal d'acces
Prototype rapide? Claude.ai ou API directe. Production AWS? Bedrock. Production GCP? Vertex AI. Developpement quotidien? Claude Code CLI. Equipe? Claude Teams. Le canal d'acces depend de votre infrastructure existante et de vos contraintes de compliance.
Quiz - Ecosysteme Claude
1. Quel produit est le mieux adapte pour integrer Claude dans une application web personnalisee ?
2. Pour une entreprise deja sur AWS avec des contraintes de compliance, quel acces privilegier ?
3. Quel outil CLI permet d'utiliser Claude comme agent de developpement ?
Les Modeles Claude - Familles et Versions
Objectifs
- Comprendre chaque modele et ses forces
- Savoir quel modele utiliser selon le cas
- Connaitre l'evolution des versions
Famille de modeles actuelle (2026)
| Modele | Model ID | Input/1M | Output/1M | Contexte | Forces |
|---|---|---|---|---|---|
| Opus 4.6 | claude-opus-4-6 | $5.00 | $25.00 | 1M tokens | Raisonnement complexe, agents autonomes, code avance |
| Sonnet 4.5 | claude-sonnet-4-5-20250929 | $3.00 | $15.00 | 1M tokens | Equilibre performance/cout, coding quotidien |
| Haiku 4.5 | claude-haiku-4-5-20251001 | $1.00 | $5.00 | 200K tokens | Ultra-rapide, classification, routing, economique |
La regle d'or que j'enseigne depuis des annees : toujours commencer avec le modele le moins cher qui fait le travail. Haiku pour le routing et la classification, Sonnet pour 80% des taches, Opus uniquement quand la complexite l'exige. C'est cette discipline qui separe un architecte junior d'un senior.
Arbre de decision : quel modele choisir ?
Quelle est votre tache ?
β
βββββββββββββββββββΌββββββββββββββββββ
β β β
Simple/Rapide Standard/Code Complexe/Agent
β β β
ββββββΌβββββ ββββββΌβββββ ββββββΌβββββ
β HAIKU β β SONNET β β OPUS β
β 4.5 β β 4.5 β β 4.6 β
βββββββββββ βββββββββββ βββββββββββ
$1/$5 $3/$15 $5/$25
200K ctx 1M ctx 1M ctx
- Classification - Coding - Raisonnement
- Extraction - Analyse - Agents multi-step
- Routing - Generation - Code complexe
- Reformatage - Summarization - Recherche
- Triage - Q&A - Planification
Evolution des versions
Gen 1 (2023) Gen 2 (2023) Gen 3 (2024) Gen 4 (2025-26)
ββββββββββ ββββββββββ ββββββββββββββ ββββββββββββββββ
Claude 1.0 β Claude 2.0 β Claude 3 Opus β Claude 4.x
Claude 2.1 Claude 3 Sonnet Sonnet 4.5
Claude 3 Haiku Haiku 4.5
Claude 3.5 Sonnet Opus 4.6
Context: Context: Context: Context:
~9K tokens 100-200K 200K 200K-1M
Capacites: Capacites: Capacites: Capacites:
Basique Tool Use Vision Extended Thinking
200K context Benchmark SOTA Agents autonomes
MCP Adaptive Thinking
import anthropic
client = anthropic.Anthropic()
# Utiliser Opus pour du raisonnement complexe
response_opus = client.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
messages=[{"role": "user", "content": "Analyse cette architecture..."}]
)
# Utiliser Sonnet pour du coding standard
response_sonnet = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=2048,
messages=[{"role": "user", "content": "Ecris une fonction Python..."}]
)
# Utiliser Haiku pour de la classification rapide
response_haiku = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=100,
messages=[{"role": "user", "content": "Classifie: positif/negatif/neutre"}]
)Quiz - Modeles Claude
1. Quel modele a le meilleur rapport qualite/prix pour le coding quotidien ?
2. Quelle est la fenetre de contexte d'Opus 4.6 ?
3. Pour un systeme de routing/classification haute frequence, quel modele choisir ?
Architecture Transformer et Specificites Claude
Objectifs
- Comprendre les bases de l'architecture Transformer
- Connaitre les specificites de Claude (Constitutional AI, RLHF)
- Identifier les differences entre Claude et ses concurrents
Vous n'avez pas besoin d'etre un chercheur en ML pour etre un bon architecte IA. Mais comprendre les mecanismes fondamentaux - tokenization, attention, contexte - vous permet de prendre de meilleures decisions de design. C'est comme un architecte de batiments qui comprend la resistance des materiaux sans etre ingenieur structures.
Architecture Transformer simplifiee
"Bonjour Claude"
β
βΌ
ββββββββββββ
βTOKENIZER β "Bonjour" β [15339] "Claude" β [21012]
ββββββ¬ββββββ
βΌ
ββββββββββββ
βEMBEDDINGSβ [15339] β [0.23, -0.45, 0.67, ...] (vecteur 4096D)
ββββββ¬ββββββ
βΌ
ββββββββββββββββββββββββ
β ATTENTION LAYERS β x 80+ couches
β ββββββββββββββββββ β
β β Self-Attention β β Chaque token "regarde" tous les autres
β β Q Γ K^T / βd β β Comprend le contexte et les relations
β ββββββββββββββββββ β
β ββββββββββββββββββ β
β β Feed-Forward β β Transformations non-lineaires
β ββββββββββββββββββ β
ββββββββββββ¬ββββββββββββ
βΌ
ββββββββββββββββ
β OUTPUT HEAD β Probabilites sur le vocabulaire
β softmax β β Token le plus probable
ββββββββββββββββ
β
βΌ
"Bonjour ! Comment puis-je vous aider ?"
Self-Attention : la cle de la comprehension
Le mecanisme d'attention permet a chaque token de "regarder" tous les autres tokens de la sequence. C'est ainsi que Claude comprend que dans "Le chat mange la souris", le sujet de "mange" est "chat" et l'objet est "souris". Plus la fenetre de contexte est grande, plus Claude peut "regarder" loin.
Specificites de Claude
| Aspect | Claude (Anthropic) | GPT (OpenAI) | Gemini (Google) |
|---|---|---|---|
| Training Safety | Constitutional AI (RLAIF) | RLHF classique | RLHF + filtres |
| Approche | Safety-first, principes | Capability-first | Integration-first |
| Comportement | Literal, precis, honnete | Flexible, creatif | Factuel, multimodal |
| Contexte max | 1M tokens | 128K tokens | 2M tokens |
| Forces | Coding, instructions, XML | Ecosysteme, plugins | Multimodal, integration |
Tokenization
Un token est l'unite de base que Claude traite. En anglais, 1 token β 4 caracteres ou β 0.75 mot. En francais, c'est environ 1 token β 3 caracteres car les accents et la grammaire consomment plus de tokens. Le mot "architecture" = 3 tokens, "Bonjour" = 1-2 tokens.
Quiz
1. Quel mecanisme permet a Claude de comprendre le contexte ?
2. Qu'est-ce que Constitutional AI ?
Fenetre de Contexte et Gestion des Tokens
Objectifs
- Comprendre ce qu'est un token et comment les compter
- Maitriser la fenetre de contexte et ses implications
- Appliquer des strategies d'optimisation
Qu'est-ce qu'un token ?
Un token est la plus petite unite de texte que Claude traite. Ce n'est ni un caractere, ni un mot, mais un morceau de texte appris durant l'entrainement.
Estimations rapides
- 1 mot anglais β 1.3 tokens
- 1 mot francais β 1.5 tokens
- 1 page (~500 mots) β 750 tokens
- 1 ligne de code β 10-15 tokens
Fenetres de contexte
- Haiku 4.5 : 200K tokens β 500 pages
- Sonnet 4.5 : 1M tokens β 2500 pages
- Opus 4.6 : 1M tokens β 2500 pages
ββββββββββββββββββββββββββββββββββββββββββββββββββββ β FENETRE DE CONTEXTE (1M) β β β β ββββββββββββββββ β β β System Prompt β ~500-2000 tokens β β ββββββββββββββββ β β ββββββββββββββββββββββββββββββββββββ β β β Historique de conversation β β β β User msg 1 + Assistant msg 1 β β β β User msg 2 + Assistant msg 2 β Variable β β β ... β β β ββββββββββββββββββββββββββββββββββββ β β ββββββββββββββββββββββββββββββββββββ β β β Contexte RAG / Documents β Variable β β ββββββββββββββββββββββββββββββββββββ β β ββββββββββββββββ β β β Dernier msg β Question actuelle β β ββββββββββββββββ β β ββββββββββββββββ β β β Reponse β β max_tokens limite ceci β β ββββββββββββββββ β β β β Total = input_tokens + output_tokens β€ contexte β ββββββββββββββββββββββββββββββββββββββββββββββββββββ
Attention aux couts et a la latence
Plus le contexte est long, plus c'est cher (facturation au token) et plus la latence augmente. Un appel avec 100K tokens d'input coutera 100x plus qu'un appel avec 1K tokens. Optimisez toujours la taille du contexte.
Strategies d'optimisation
- Prompts concis - Eliminer les mots inutiles, aller droit au but
- Summarization - Resumer les conversations longues periodiquement
- Prompt Caching - Cacher les system prompts longs (90% reduction)
- Chunking intelligent - Decouper les documents et n'envoyer que les parties pertinentes
- Model routing - Haiku pour les taches simples, Opus seulement quand necessaire
Quiz
1. Combien de pages de texte peut contenir 1M tokens ?
2. Quelle technique reduit le cout des tokens input de 90% ?
Comparaison Claude vs GPT vs Gemini
Objectifs
- Positionner Claude par rapport a la concurrence
- Identifier les forces et faiblesses de chaque provider
- Savoir recommander le bon modele selon le contexte
Posture d'architecte
En tant qu'architecte, votre role est de choisir le bon outil pour le bon usage. Il n'y a pas de "meilleur" modele absolu. Chaque provider a ses forces. La vraie competence est de savoir quand utiliser lequel.
Comparaison detaillee
| Critere | Claude (Anthropic) | GPT-4o (OpenAI) | Gemini Ultra (Google) |
|---|---|---|---|
| Contexte | 1M tokens | 128K tokens | 2M tokens |
| Coding | Excellent (SWE-bench SOTA) | Tres bon | Bon |
| Raisonnement | Excellent | Excellent | Tres bon |
| Safety | Leader (Constitutional AI) | Bon (RLHF) | Bon |
| Multimodal | Images, PDF | Images, Audio, Video | Natif multi-modal |
| Ecosysteme | API, MCP, Claude Code | Plugins, GPTs, Assistants | Google Cloud integration |
| XML/Structure | Excellent | Bon | Correct |
| Instructions | Tres literal, precis | Flexible, creatif | Variable |
Safety
5
β
Coding 5 βββΌββ 5 Raisonnement
/β\
/ β \
/ β \
Speed 5 ββ€ β ββ 5 Contexte
\ β /
\ β /
\β/
Cost 5 βββΌββ 5 Multimodal
β
Ecosysteme
5
Claude: Safetyβ
β
β
β
β
Codingβ
β
β
β
β
Contexteβ
β
β
β
β
GPT-4o: Ecosysβ
β
β
β
β
Multimodβ
β
β
β
β
Creatifβ
β
β
β
β
Gemini: Contexteβ
β
β
β
β
Integrationβ
β
β
β
β Speedβ
β
β
β
β
Quand choisir Claude ?
- Coding et developpement - SOTA sur SWE-bench, excellent suivi d'instructions
- Long context - Analyse de documents volumineux (1M tokens)
- Safety-critical - Applications ou la securite IA est primordiale
- Prompts structures - Excellent avec XML, JSON, formats stricts
- Agents - Extended thinking + tool use = agents fiables
Quiz
1. Quel est l'avantage principal de Claude pour le coding ?
2. Quel provider a la plus grande fenetre de contexte ?
Tarification et Optimisation des Couts
Objectifs
- Comprendre le modele de tarification Claude
- Calculer les couts d'un projet IA
- Appliquer les strategies d'optimisation
Le FinOps IA est LA competence #1 que les entreprises recherchent en 2026. J'ai vu des projets passer de $50K/mois a $5K/mois simplement en appliquant model routing + prompt caching + batching. Savoir reduire les couts de 80% sans perdre en qualite, c'est ce qui fait un bon architecte IA.
Grille tarifaire complete
| Modele | Input / 1M tokens | Output / 1M tokens | Cache Input | Batch (-50%) |
|---|---|---|---|---|
| Opus 4.6 | $5.00 | $25.00 | $0.50 (90%β) | $2.50 / $12.50 |
| Sonnet 4.5 | $3.00 | $15.00 | $0.30 (90%β) | $1.50 / $7.50 |
| Haiku 4.5 | $1.00 | $5.00 | $0.10 (90%β) | $0.50 / $2.50 |
Calcul pratique
# Calculateur de couts Claude
def calculate_cost(model, input_tokens, output_tokens, cached_input=0):
pricing = {
"opus": {"input": 5.00, "output": 25.00, "cache": 0.50},
"sonnet": {"input": 3.00, "output": 15.00, "cache": 0.30},
"haiku": {"input": 1.00, "output": 5.00, "cache": 0.10},
}
p = pricing[model]
fresh_input = input_tokens - cached_input
cost = (fresh_input / 1_000_000 * p["input"] +
cached_input / 1_000_000 * p["cache"] +
output_tokens / 1_000_000 * p["output"])
return round(cost, 6)
# Exemple : chatbot Sonnet, 1000 tokens in, 500 out
print(calculate_cost("sonnet", 1000, 500)) # $0.0105
# Avec caching (800 tokens caches sur 1000)
print(calculate_cost("sonnet", 1000, 500, cached_input=800)) # $0.000844 strategies d'optimisation
1. Model Routing
Haiku pour simple (-66%), Sonnet pour standard, Opus pour complexe. Economie: 40-60%
2. Prompt Caching
Cacher system prompts et contexte RAG. Economie: jusqu'a 90% sur l'input
3. Batching
Message Batches API pour non-urgent. Economie: 50% sur tout
4. Prompt Compression
Reduire la taille des prompts, summarizer les conversations. Economie: 20-40%
Quiz
1. Quel est le cout output de Sonnet 4.5 par million de tokens ?
2. Combien de reduction offre le prompt caching sur l'input ?
3. Quelle strategie est la plus efficace pour un chatbot a fort volume ?
Quiz Complet - Ecosysteme Claude
Objectifs
- Valider les acquis du Module 1.1
- 20 questions couvrant les 7 lecons precedentes
Examen Module 1.1 - Comprendre Claude & Anthropic
1. En quelle annee Anthropic a-t-il ete fonde ?
2. Quel est le model ID correct de Sonnet 4.5 ?
3. Quel service permet d'utiliser Claude dans l'ecosysteme AWS ?
4. Combien coute l'input par 1M tokens pour Haiku 4.5 ?
5. Quel mecanisme permet au Transformer de comprendre le contexte ?
6. Constitutional AI utilise quel type de feedback ?
7. Quelle est la fenetre de contexte de Haiku 4.5 ?
8. Quel modele Claude est le plus adapte pour un agent autonome complexe ?
9. Quelle reduction offre le Message Batches API ?
10. Quelle est la principale force de Gemini par rapport a Claude ?
Premier Appel API - Messages API
Objectifs
- Configurer sa cle API et le SDK Python
- Faire son premier appel a l'API Claude
- Comprendre la structure de la requete et de la reponse
Le moment ou vous faites votre premier appel API, c'est le moment ou vous passez d'utilisateur a architecte. A partir de maintenant, vous controlez Claude programmatiquement. Chaque parametre, chaque token, chaque decision est entre vos mains.
Etape 1 : Installation du SDK
# Python SDK pip install anthropic # TypeScript SDK npm install @anthropic-ai/sdk # Configurer la cle API (variable d'environnement) export ANTHROPIC_API_KEY="sk-ant-api03-votre-cle-ici"
Securite de la cle API
Ne JAMAIS mettre la cle API directement dans le code source. Toujours utiliser des variables d'environnement ou un gestionnaire de secrets (AWS Secrets Manager, HashiCorp Vault, etc.).
Etape 2 : Premier appel Python
import anthropic
# Le SDK lit automatiquement ANTHROPIC_API_KEY
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[
{"role": "user", "content": "Bonjour Claude ! Explique-moi ce qu'est une API en 3 phrases."}
]
)
# Acceder au texte de la reponse
print(message.content[0].text)
# Voir l'usage des tokens
print(f"Input: {message.usage.input_tokens} tokens")
print(f"Output: {message.usage.output_tokens} tokens")Etape 3 : Equivalent TypeScript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const message = await client.messages.create({
model: "claude-sonnet-4-5-20250929",
max_tokens: 1024,
messages: [
{ role: "user", content: "Bonjour Claude !" }
]
});
console.log(message.content[0].text);Structure de la reponse
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Une API (Application Programming Interface) est..."
}
],
"model": "claude-sonnet-4-5-20250929",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 25,
"output_tokens": 150
}
}| Champ | Description |
|---|---|
| id | Identifiant unique du message |
| content | Tableau de blocs de contenu (text, tool_use, etc.) |
| stop_reason | end_turn, max_tokens, stop_sequence, tool_use |
| usage | Nombre de tokens consommes (input + output) |
Quiz
1. Quelle variable d'environnement contient la cle API ?
2. Quel champ de la reponse contient le texte genere ?
System Prompts et Configuration
Objectifs
- Maitriser le parametre system prompt
- Configurer temperature, max_tokens, stop_sequences
- Creer des system prompts efficaces
Le system prompt est le levier le plus puissant que vous avez. Un bon system prompt transforme Claude d'un assistant generique en un expert specialise. C'est l'equivalent du brief que vous donnez a un consultant : plus il est precis, meilleur sera le resultat.
Anatomie d'un appel complet
message = client.messages.create(
model="claude-sonnet-4-5-20250929", # Modele a utiliser
max_tokens=2048, # Max tokens en sortie
temperature=0.7, # Creativite (0=deterministe, 1=creatif)
system="Tu es un architecte logiciel senior avec 20 ans d'experience. "
"Tu reponds de maniere structuree avec des exemples concrets. "
"Tu utilises des diagrammes ASCII quand c'est utile.",
stop_sequences=["---END---"], # Arret sur cette sequence
messages=[
{"role": "user", "content": "Compare monolithe vs microservices"}
]
)Parametres en detail
| Parametre | Defaut | Description | Conseil |
|---|---|---|---|
| temperature | 1.0 | Controle l'aleatoire (0-1) | 0 pour factuel, 0.7 pour creatif |
| max_tokens | requis | Limite de tokens en sortie | Toujours definir pour controler le cout |
| top_p | - | Nucleus sampling | Utiliser temperature OU top_p, pas les deux |
| top_k | - | Top-K sampling | Rarement necessaire |
| stop_sequences | [] | Sequences qui arretent la generation | Utile pour controler le format |
Bon vs Mauvais system prompt
Mauvais
"Sois un assistant utile."
Trop vague, aucune direction, pas de format, pas de contraintes.
Bon
"Tu es un architecte cloud senior. Reponds en francais. Structure tes reponses avec: 1) Resume executif (2 phrases) 2) Details techniques 3) Recommandation. Utilise des exemples AWS. Ne depasse pas 500 mots."
Quiz
1. Quelle temperature utiliser pour une extraction de donnees factuelle ?
2. Quel est le role du system prompt ?
Streaming et Reponses en Temps Reel
Objectifs
- Implementer le streaming avec le SDK Python
- Comprendre les events Server-Sent Events (SSE)
- Ameliorer l'experience utilisateur avec le temps reel
Pourquoi le streaming ?
Sans streaming, l'utilisateur attend que la reponse COMPLETE soit generee (parfois 10-30 secondes). Avec le streaming, il voit les premiers mots en quelques millisecondes. C'est la difference entre une UX mediocre et une UX professionnelle.
import anthropic
client = anthropic.Anthropic()
# Methode 1 : Context manager (recommande)
with client.messages.stream(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[{"role": "user", "content": "Ecris un guide d'architecture"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
# Acces au message final
final = stream.get_final_message()
print(f"\nTokens: {final.usage.input_tokens} in, {final.usage.output_tokens} out")Events SSE (Server-Sent Events)
| Event | Description | Contenu |
|---|---|---|
| message_start | Debut du message | Metadata, model, usage |
| content_block_start | Debut d'un bloc | Type (text, tool_use) |
| content_block_delta | Chunk de texte | Le texte incremental |
| content_block_stop | Fin d'un bloc | - |
| message_delta | Update du message | stop_reason, usage |
| message_stop | Fin du message | - |
Streaming en production
En production, utilisez le streaming pour tous les endpoints utilisateur-facing. Reservez les appels non-streaming pour le batching et les pipelines internes ou la latence n'est pas critique.
Quiz
1. Quel est l'avantage principal du streaming ?
Gestion des Erreurs et Rate Limits
Objectifs
- Gerer les erreurs HTTP de l'API Claude
- Implementer un retry avec backoff exponentiel
- Comprendre et respecter les rate limits
Codes d'erreur HTTP
| Code | Type | Cause | Action |
|---|---|---|---|
| 400 | Bad Request | Parametres invalides | Verifier la requete |
| 401 | Unauthorized | Cle API invalide | Verifier ANTHROPIC_API_KEY |
| 403 | Forbidden | Permission refusee | Verifier les droits |
| 429 | Rate Limit | Trop de requetes | Retry avec backoff |
| 500 | Server Error | Erreur Anthropic | Retry apres delai |
| 529 | Overloaded | API surchargee | Retry avec backoff |
Pattern de retry robuste
import anthropic
import time
import random
def call_claude(messages, model="claude-sonnet-4-5-20250929", max_retries=5):
client = anthropic.Anthropic()
for attempt in range(max_retries):
try:
return client.messages.create(
model=model,
max_tokens=1024,
messages=messages
)
except anthropic.RateLimitError as e:
# Backoff exponentiel + jitter
wait = (2 ** attempt) + random.uniform(0, 1)
print(f"Rate limited. Retry dans {wait:.1f}s...")
time.sleep(wait)
except anthropic.APIStatusError as e:
if e.status_code >= 500: # Erreur serveur
wait = 2 ** attempt
print(f"Erreur serveur {e.status_code}. Retry dans {wait}s...")
time.sleep(wait)
else:
raise # Erreur client (400, 401, 403) = pas de retry
raise Exception(f"Echec apres {max_retries} tentatives")Regle d'or
Ne JAMAIS ignorer les rate limits. Toujours implementer un retry avec backoff exponentiel et jitter. Les erreurs 4xx (sauf 429) ne doivent PAS etre retentees - ce sont des erreurs de votre code.
Quiz
1. Quel code HTTP signifie "rate limit depasse" ?
2. Faut-il retenter une erreur 401 (Unauthorized) ?
Vision et Multimodal
Objectifs
- Envoyer des images a Claude via l'API
- Analyser des diagrammes et documents visuels
- Connaitre les limites du multimodal
Envoyer une image (base64)
import anthropic
import base64
client = anthropic.Anthropic()
# Lire et encoder l'image
with open("architecture-diagram.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=2048,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data
}
},
{
"type": "text",
"text": "Analyse ce diagramme d'architecture. Identifie les composants, les flux de donnees, et les points faibles potentiels."
}
]
}]
)
print(message.content[0].text)Envoyer une image via URL
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/diagram.png"
}
},
{"type": "text", "text": "Que montre cette image ?"}
]
}]
)Capacites et limites
| Aspect | Detail |
|---|---|
| Formats | JPEG, PNG, GIF, WebP |
| Taille max | 20 MB par image |
| Max images | 100 images par requete |
| Supporte (converti en images internement) | |
| Use cases | Analyse diagrammes, OCR, description UI, audit visuel, charts |
Cas d'usage architecte
La vision Claude est extremement utile pour : analyser des diagrammes d'architecture existants, auditer des screenshots d'interfaces, lire des schemas de bases de donnees, comprendre des diagrammes de flux. C'est comme avoir un pair-reviewer qui peut "voir" vos designs.
Quiz
1. Quelle est la taille maximale par image envoyee a Claude ?
Batching et Messages API Avancee
Objectifs
- Gerer les conversations multi-turn
- Utiliser le Message Batches API pour le traitement en lot
- Optimiser les workflows asynchrones
Conversations multi-turn
# L'historique est gere manuellement via le tableau messages
conversation = []
def chat(user_message):
conversation.append({"role": "user", "content": user_message})
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
system="Tu es un architecte cloud expert.",
messages=conversation
)
assistant_msg = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_msg})
return assistant_msg
# Utilisation
print(chat("Qu'est-ce que Kubernetes ?"))
print(chat("Comment le deployer sur AWS ?")) # Claude a le contexte precedent
print(chat("Et les couts ?")) # Claude a tout le contexteMessage Batches API (50% reduction)
# Creer un batch de requetes (traitement asynchrone, 50% moins cher)
batch = client.messages.batches.create(
requests=[
{
"custom_id": "analysis-doc-1",
"params": {
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 2048,
"messages": [{"role": "user", "content": "Analyse ce document: ..."}]
}
},
{
"custom_id": "analysis-doc-2",
"params": {
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 2048,
"messages": [{"role": "user", "content": "Analyse ce document: ..."}]
}
}
]
)
# Verifier le statut
status = client.messages.batches.retrieve(batch.id)
print(f"Statut: {status.processing_status}") # in_progress, ended
# Recuperer les resultats quand termine
if status.processing_status == "ended":
for result in client.messages.batches.results(batch.id):
print(f"{result.custom_id}: {result.result.message.content[0].text[:100]}")Quand utiliser le batching ?
Parfait pour : migration de contenu, analyse de documents en masse, evaluation de prompts, generation de donnees d'entrainement, traitement ETL. Tout ce qui n'a pas besoin d'etre temps reel.
Quiz
1. Comment Claude gere-t-il l'historique de conversation ?
2. Quelle reduction offre le Message Batches API ?
Lab Pratique : Chatbot API Complet
Objectifs
- Creer un chatbot fonctionnel en console
- Integrer streaming, erreurs, et vision
Lab - Chatbot Claude Complet
Etape 1 : Setup
Creer un fichier chatbot.py. Installer le SDK : pip install anthropic. Configurer ANTHROPIC_API_KEY.
Etape 2 : Chatbot de base avec historique
import anthropic
client = anthropic.Anthropic()
conversation = []
SYSTEM = """Tu es un architecte logiciel senior.
Tu reponds de maniere structuree et concise.
Tu donnes des exemples pratiques quand c'est pertinent."""
print("Chatbot Claude (tapez 'quit' pour quitter)")
print("-" * 50)
while True:
user_input = input("\nVous: ")
if user_input.lower() == "quit":
break
conversation.append({"role": "user", "content": user_input})
try:
print("\nClaude: ", end="")
with client.messages.stream(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
system=SYSTEM,
messages=conversation
) as stream:
full_response = ""
for text in stream.text_stream:
print(text, end="", flush=True)
full_response += text
conversation.append({"role": "assistant", "content": full_response})
final = stream.get_final_message()
print(f"\n[{final.usage.input_tokens}+{final.usage.output_tokens} tokens]")
except anthropic.RateLimitError:
print("\n[Rate limited - attendez quelques secondes]")
except anthropic.APIError as e:
print(f"\n[Erreur API: {e}]")Etape 3 : Tester
Lancez le chatbot et testez avec des questions d'architecture : "Compare REST vs gRPC", "Explique CQRS", "Design un systeme de notification".
Etape 4 : Ameliorations (bonus)
- Ajouter la sauvegarde de conversation en JSON
- Ajouter le support d'envoi d'images
- Ajouter un switch de modele (/haiku, /sonnet, /opus)
- Ajouter un compteur de cout cumule
Quiz - API Claude
Objectifs
- Valider les acquis du Module 1.2 - API Claude
Examen Module 1.2 - API Claude
1. Quel SDK Python installer pour utiliser l'API Claude ?
2. Quel parametre controle la creativite de la reponse ?
3. Comment Claude gere-t-il la memoire entre les appels API ?
4. Quelle methode Python permet le streaming ?
5. Quel format d'image Claude ne supporte PAS ?
6. Combien de reduction offre le batching par rapport aux appels normaux ?
7. Quelle erreur HTTP ne doit PAS etre retentee ?
Principes Fondamentaux du Prompting
Objectifs
- Maitriser les 5 principes du prompt engineering
- Construire des prompts structures et efficaces
- Eviter les erreurs courantes
Le prompt engineering n'est PAS du "magic wording". C'est de l'ingenierie : methodique, testable, reproductible. Traitez vos prompts comme du code - versionnes, testes, revues. Les meilleurs architectes que je connais passent plus de temps a affiner leurs prompts qu'a ecrire du code.
Les 5 principes fondamentaux
βββββββββββββββββββββββββββββββββββββββββββ β LE PROMPT PARFAIT β β β β R - ROLE : Qui est Claude ? β β C - CONTEXTE : Quelle situation ? β β T - TACHE : Que faire exactement ? β β F - FORMAT : Quelle forme ? β β C - CONTRAINTES: Quelles limites ? β β β β Bonus: EXEMPLES pour guider β βββββββββββββββββββββββββββββββββββββββββββ
Comparaison : Mauvais vs Bon prompt
Mauvais prompt
"Parle-moi des microservices"
Pas de role, pas de contexte, pas de format. Reponse generique et longue.
Bon prompt
"Tu es un architecte senior. Contexte: Migration monolithe Java. Tache: Liste les 5 risques principaux. Format: Tableau avec colonnes: Risque | Probabilite | Impact | Mitigation Max 200 mots."
Role, contexte, tache, format, contrainte. Reponse precise et utile.
Quiz
1. Quel est le principe RCTFC ?
Techniques Avancees : Few-Shot et Chain-of-Thought
Objectifs
- Maitriser zero-shot, one-shot, few-shot
- Appliquer Chain-of-Thought et self-consistency
- Choisir la bonne technique selon la tache
Zero-Shot vs Few-Shot
"Classifie le sentiment de ce texte : 'Super produit, je recommande !'"
"Classifie le sentiment : Texte: 'Excellent service !' β Positif Texte: 'Tres decevant' β Negatif Texte: 'Correct, sans plus' β Neutre Texte: 'Super produit, je recommande !' β"
Chain-of-Thought (CoT)
"Analyse cette architecture et identifie les problemes. Reflechis etape par etape : 1. Identifie chaque composant 2. Trace les flux de donnees 3. Verifie la scalabilite de chaque composant 4. Identifie les single points of failure 5. Evalue la resilience 6. Formule tes recommandations Architecture : [description]"
Quand utiliser quoi ?
| Technique | Use case | Precision | Cout |
|---|---|---|---|
| Zero-shot | Taches simples, generiques | Moyenne | Bas |
| Few-shot | Classification, format strict | Haute | Moyen |
| CoT | Raisonnement, math, logique | Tres haute | Eleve |
Quiz
1. Combien d'exemples un prompt few-shot contient-il typiquement ?
2. Chain-of-Thought est particulierement utile pour :
Structuration XML et Formatage
Objectifs
- Utiliser les balises XML pour structurer les prompts
- Forcer des formats de sortie (JSON, Markdown, etc.)
Le superpower secret de Claude
Claude est particulierement performant avec les balises XML. C'est un avantage competitif par rapport a GPT. Utilisez les balises pour structurer vos prompts complexes - Claude les comprend et les respecte nativement.
Template XML pour prompts complexes
<context>
Vous analysez un systeme e-commerce avec 1M utilisateurs.
Le systeme actuel est un monolithe Java deploye sur un seul serveur.
</context>
<task>
Identifiez les 3 principaux risques architecturaux et proposez des solutions.
</task>
<format>
Repondez en JSON strict avec cette structure :
[
{
"risk_name": "string",
"severity": 1-5,
"description": "string (max 50 mots)",
"mitigation": "string (max 50 mots)"
}
]
</format>
<constraints>
- Maximum 3 risques
- Severity 5 = critique, 1 = mineur
- JSON valide uniquement, pas de texte autour
</constraints>Forcer le format JSON
import json
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
system="Tu es un assistant qui repond UNIQUEMENT en JSON valide. Pas de texte, pas de markdown, juste du JSON.",
messages=[{"role": "user", "content": prompt_xml}]
)
# Parser la reponse JSON
data = json.loads(message.content[0].text)
for risk in data:
print(f"[{risk['severity']}/5] {risk['risk_name']}: {risk['mitigation']}")Quiz
1. Pourquoi Claude est-il bon avec les balises XML ?
System Prompts Architecturaux
Objectifs
- Construire des system prompts enterprise-grade
- Implementer des guardrails dans le prompt
- Appliquer le context engineering
Template complet de system prompt
Tu es ArchBot, un assistant architecte logiciel senior avec 25 ans d'experience. ROLE: - Tu analyses les architectures systeme - Tu identifies les risques et proposes des ameliorations - Tu connais les patterns: microservices, event-driven, CQRS, saga REGLES: 1. Toujours structurer ta reponse avec des sections claires 2. Utiliser des diagrammes ASCII quand pertinent 3. Quantifier quand possible (latence, throughput, cout) 4. Citer les trade-offs de chaque recommandation 5. Ne pas inventer de chiffres - dire "a estimer" si incertain FORMAT DE SORTIE: ## Analyse [Description du probleme] ## Architecture Proposee [Diagramme + description] ## Trade-offs | Option | Avantages | Inconvenients | ## Recommandation [Recommandation finale justifiee] GUARDRAILS: - Ne pas recommander de technologies sans justification - Toujours considerer la scalabilite et le cout - Signaler les single points of failure - Ne jamais conseiller de stocker des secrets en clair
Context Engineering
Le context engineering va au-dela du prompt : c'est l'art de choisir quelles informations inclure dans le contexte (system prompt + messages + RAG) pour obtenir le meilleur resultat. Trop de contexte = bruit. Pas assez = hallucinations. Le bon architecte trouve l'equilibre.
Quiz
1. Qu'est-ce qu'un guardrail dans un system prompt ?
Claude 4.x : Litteralite et Nouvelles Regles
Objectifs
- Comprendre les changements comportementaux Claude 4.x
- Adapter ses prompts pour la nouvelle generation
Changements cles Claude 4.x vs 3.x
| Aspect | Claude 3.x | Claude 4.x |
|---|---|---|
| Litteralite | Interprete, infere | Suit a la lettre |
| Refus | Refuse parfois sans raison | Moins de faux refus |
| Format | Prend des libertes | Respecte strictement |
| Instructions | Guidelines | Instructions exactes |
| Coding | Bon | SOTA (SWE-bench) |
| Extended Thinking | Non disponible | Raisonnement visible |
Attention a la litteralite
Claude 4.x suit vos instructions a la lettre. Si votre prompt est ambigu, le resultat sera ambigu. Si vous dites "liste 5 elements", il en listera exactement 5. Si vous oubliez de preciser la langue, il peut repondre en anglais. Soyez precis.
Conseils de migration 3.x vers 4.x
- Supprimez les "hacks" - Plus besoin de "please" ou "it's very important" pour obtenir un bon resultat
- Soyez explicite - Chaque contrainte doit etre ecrite clairement
- Testez vos prompts - Le comportement peut changer, validez vos outputs
- Simplifiez - Claude 4.x comprend mieux, vous pouvez etre plus direct
Quiz
1. Quel est le changement principal de Claude 4.x ?
Prompt Caching et Optimisation
Objectifs
- Comprendre le mecanisme de prompt caching
- Implementer le caching dans l'API
- Calculer les economies realisees
Comment fonctionne le Prompt Caching
SANS CACHE: AVEC CACHE: Requete 1: [System 2000tok + Q 100] Requete 1: [System 2000tok CACHED + Q 100] Cout: 2100 * prix_input Cout: 2000*0.1*prix + 100*prix Requete 2: [System 2000tok + Q 150] Requete 2: [System 2000tok CACHED + Q 150] Cout: 2150 * prix_input Cout: 2000*0.1*prix + 150*prix Apres 100 requetes: Apres 100 requetes: ~210K tokens factures plein tarif ~200K cached (90%β) + ~12.5K plein tarif ECONOMIE : jusqu'a 90% sur l'input cache!
import anthropic
client = anthropic.Anthropic()
# System prompt avec cache_control
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
system=[
{
"type": "text",
"text": """Tu es un architecte expert. Voici la documentation complete
du systeme (5000 mots)... [LONG CONTEXTE ICI]...""",
"cache_control": {"type": "ephemeral"} # Active le cache
}
],
messages=[{"role": "user", "content": "Quelle est l'architecture actuelle ?"}]
)
# Verifier l'utilisation du cache
print(f"Cache creation: {message.usage.cache_creation_input_tokens}")
print(f"Cache read: {message.usage.cache_read_input_tokens}")
print(f"Non-cached input: {message.usage.input_tokens}")Pricing du cache
| Type | Prix | Description |
|---|---|---|
| Cache Write | 125% du prix normal | Premier appel (mise en cache) |
| Cache Read | 10% du prix normal | Appels suivants (90% economie) |
| TTL | 5 minutes | Duree de vie du cache |
Strategies de caching
1. Cacher les system prompts longs (toujours identiques). 2. Cacher le contexte RAG entre les questions d'un meme utilisateur. 3. Cacher les exemples few-shot. Rentable des 2 requetes avec le meme prefixe.
Quiz
1. Quelle reduction le prompt caching offre-t-il sur l'input ?
2. Combien de temps le cache reste-t-il actif ?
Lab : Optimiser un Pipeline de Prompts
Objectifs
- Prendre un prompt basique et l'optimiser iterativement
- Mesurer l'impact de chaque technique
Lab - Optimisation de Pipeline
Etape 1 : Prompt de base
Commencez avec un prompt simple : "Analyse ce code et trouve les bugs." Mesurez la qualite (1-5), la latence et le cout.
Etape 2 : Ajouter Chain-of-Thought
Ajoutez "Reflechis etape par etape". Mesurez a nouveau. Qualite amelioree ?
Etape 3 : Ajouter des exemples (Few-Shot)
Ajoutez 2-3 exemples de bugs et corrections. Mesurez la precision.
Etape 4 : Structurer avec XML
Reorganisez avec des balises XML. Comparez le format de sortie.
Etape 5 : Implementer le caching
Ajoutez cache_control sur le system prompt. Mesurez la reduction de cout.
Etape 6 : Comparer les resultats
| Version | Qualite (1-5) | Latence | Cout/requete |
|---|---|---|---|
| Baseline | _____ | _____ | _____ |
| + CoT | _____ | _____ | _____ |
| + Few-Shot | _____ | _____ | _____ |
| + XML | _____ | _____ | _____ |
| + Caching | _____ | _____ | _____ |
Examen Final - Phase 1
Objectifs
- Valider tous les acquis de la Phase 1
- Partie theorique : 15 QCM
- Partie pratique : exercice de code
Partie 1 : QCM Final (15 questions)
1. Qui a fonde Anthropic et pourquoi ?
2. Quel modele utiliser pour un agent autonome complexe ?
3. Quelle est la commande pour installer le SDK Python ?
4. Comment acceder au texte de la reponse API ?
5. Quelle temperature pour une extraction de donnees ?
6. Le prompt caching reduit l'input de combien ?
7. Quel est le framework RCTFC ?
8. Quelle technique de prompting pour le raisonnement complexe ?
9. Claude 4.x est plus _____ que Claude 3.x
10. Quelle reduction offre le Message Batches API ?
Partie 2 : Exercice Pratique
Exercice Final
Mission
Creez un script Python qui :
- Utilise un system prompt d'architecte avec cache_control
- Fait un appel en streaming a Sonnet 4.5
- Gere les erreurs avec retry et backoff exponentiel
- Affiche le texte en temps reel
- Affiche les tokens consommes et le cout estime
Criteres de validation :
- Code fonctionnel et executant sans erreur
- Streaming implemente correctement
- Gestion d'erreurs robuste
- Prompt caching utilise
- Calcul de cout correct
Felicitations ! Si vous avez termine cette Phase 1, vous maitrisez maintenant les fondamentaux de Claude et Anthropic. Vous savez utiliser l'API, structurer vos prompts, optimiser les couts. Vous etes pret pour la Phase 2 ou nous plongerons dans le Tool Use, MCP, Claude Code et l'Extended Thinking. C'est la que l'architecte en vous va vraiment s'epanouir.