Cheatsheet Phase 1 - Claude Fondamentaux

Module Ressources

1. Modeles Claude 2026

ModeleIDIn/Out (1M tok)Contexte
Opus 4.6claude-opus-4-6$5 / $251M
Sonnet 4.5claude-sonnet-4-5-20250929$3 / $151M
Haiku 4.5claude-haiku-4-5-20251001$1 / $5200K
Regle: Opus = raisonnement complexe | Sonnet = equilibre | Haiku = rapide/economique

2. Messages API - Appel de Base

import anthropic

client = anthropic.Anthropic()  # ANTHROPIC_API_KEY env

message = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    system="Tu es un expert en architecture.",
    messages=[
        {"role": "user",
         "content": "Explique les microservices"}
    ]
)
print(message.content[0].text)

3. Parametres Messages API

ParamTypeDescription
modelstring*ID du modele
max_tokensint*Max tokens en sortie
messagesarray*Historique conversation
systemstringSystem prompt
temperaturefloat0-1 (defaut 1.0)
top_pfloatNucleus sampling
top_kintTop-k sampling
stop_sequencesarraySequences d'arret
streamboolActiver streaming

* = requis

4. Structure de la Reponse

{
  "id": "msg_01XFDUDYJgAACzvnptvVoYEL",
  "type": "message",
  "role": "assistant",
  "content": [{
    "type": "text",
    "text": "Les microservices sont..."
  }],
  "model": "claude-sonnet-4-5-20250929",
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 25,
    "output_tokens": 150
  }
}

5. Streaming (Temps Reel)

with client.messages.stream(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[{"role": "user",
               "content": "Ecris un poeme"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Events SSE: message_start, content_block_start, content_block_delta, message_delta, message_stop

6. Vision / Multimodal

import base64
with open("image.png", "rb") as f:
    data = base64.standard_b64encode(f.read()).decode()

msg = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[{"role": "user", "content": [
        {"type": "image", "source": {
            "type": "base64",
            "media_type": "image/png",
            "data": data}},
        {"type": "text",
         "text": "Decris cette image"}
    ]}]
)

Formats: JPEG, PNG, GIF, WebP | Max 20MB/image

7. HTTP Status Codes API

CodeSignificationAction
200SuccesTraiter la reponse
400Bad RequestVerifier les params
401UnauthorizedVerifier la cle API
403ForbiddenVerifier permissions
429Rate LimitRetry avec backoff
500Server ErrorRetry apres delai
529OverloadedRetry avec backoff

8. Rate Limits & Retry

Headers: x-ratelimit-limit-requests, x-ratelimit-remaining-requests, retry-after

import time

def call_with_retry(messages, retries=3):
    for i in range(retries):
        try:
            return client.messages.create(
                model="claude-sonnet-4-5-20250929",
                max_tokens=1024,
                messages=messages)
        except anthropic.RateLimitError:
            time.sleep(2 ** i)
    raise Exception("Max retries")

9. Prompt Caching (90% reduction)

msg = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": "LONG SYSTEM PROMPT...",
        "cache_control": {"type": "ephemeral"}
    }],
    messages=[{"role": "user",
               "content": "Question"}]
)
Economie: Input cache = 10% du prix normal | Cache write = 125% du prix normal | TTL = 5 min

10. Message Batches (50% reduction)

batch = client.messages.batches.create(
    requests=[
        {"custom_id": "r1",
         "params": {
            "model": "claude-sonnet-4-5-20250929",
            "max_tokens": 1024,
            "messages": [{"role":"user",
              "content":"Q1"}]
        }},
        # ... plus de requetes
    ]
)
# Poll: client.messages.batches.retrieve(batch.id)

Use case: Traitement non-urgent en masse

11. Prompt Engineering - 5 Principes

  • 1. Clarte - Instructions directes, sans ambiguite
  • 2. Specificite - Preciser le format, la longueur, le style
  • 3. Structure - Utiliser XML, listes, sections
  • 4. Exemples - Fournir des exemples de sortie attendue
  • 5. Iteration - Tester, mesurer, ameliorer
Formule: Role + Contexte + Tache + Format + Contraintes = Prompt optimal

12. Chain-of-Thought (CoT)

# Zero-shot CoT
"Resous ce probleme etape par etape:"

# Structured CoT
"""Analyse cette architecture:
1. Identifie les composants
2. Evalue chaque composant
3. Identifie les faiblesses
4. Propose des ameliorations
5. Justifie chaque choix"""

Quand: Raisonnement complexe, math, logique, debug

13. Few-Shot Learning

"""Classifie le sentiment:

Texte: "Super produit!" -> Positif
Texte: "Decevant" -> Negatif
Texte: "Correct, rien de special" -> Neutre

Texte: "J'adore cette formation!" -> """
Regle: 2-5 exemples suffisent | Exemples diversifies | Meme format que la sortie attendue

14. Structuration XML pour Claude

<context>
Systeme e-commerce, 1M utilisateurs
</context>

<task>
Identifie les 3 risques architecturaux
</task>

<format>
JSON: {risk, severity(1-5), mitigation}
</format>

<constraints>
- Maximum 200 mots par risque
- Inclure des exemples concrets
</constraints>

15. System Prompt Template

"""Tu es un [ROLE] avec [EXPERIENCE].

CONTEXTE:
[Description du contexte]

REGLES:
- Regle 1
- Regle 2
- Regle 3

FORMAT DE SORTIE:
[Format attendu]

CONTRAINTES:
- Ne pas [contrainte 1]
- Toujours [contrainte 2]

EXEMPLES:
[Exemple entree] -> [Exemple sortie]
"""

16. Claude 4.x - Specificites

  • Litteralite accrue - Suit les instructions exactement
  • Moins de refus - Moins de faux positifs safety
  • Format strict - Respecte le format demande
  • Meilleur coding - SWE-bench SOTA
  • Extended Thinking - Raisonnement en etapes visibles
  • Adaptive Thinking - 4 niveaux: low/medium/high/max
Migration 3.x->4.x: Revisiter les prompts, etre plus precis, supprimer les "hacks" de contournement

17. Quel Modele Choisir?

Tache simple?
  OUI -> Haiku 4.5 ($1/$5)
    Classification, extraction, routing
  NON ->
    Besoin max qualite?
      OUI -> Opus 4.6 ($5/$25)
        Agents, raisonnement, code complexe
      NON -> Sonnet 4.5 ($3/$15)
        Coding, analyse, generation

18. Calcul Rapide des Couts

Formule:

cout = (input_tokens / 1M * prix_input)
     + (output_tokens / 1M * prix_output)

Exemple Sonnet:

1000 tokens in + 500 tokens out
= (1000/1M * $3) + (500/1M * $15)
= $0.003 + $0.0075
= $0.0105 par requete

10K requetes/jour = $105/jour
Optimisations: Cache (-90% input) | Batch (-50%) | Routing Haiku (-66%)

19. Estimation des Tokens

ContenuTokens (approx)
1 mot anglais~1.3 tokens
1 mot francais~1.5 tokens
1 page texte (~500 mots)~750 tokens
1 ligne de code~10-15 tokens
200K tokens~500 pages
1M tokens~2500 pages
Astuce: usage.input_tokens + usage.output_tokens dans la reponse API

20. Installation SDKs

# Python
pip install anthropic

# TypeScript/JavaScript
npm install @anthropic-ai/sdk

# Claude Code CLI
npm install -g @anthropic-ai/claude-code

# Variable d'environnement
export ANTHROPIC_API_KEY=sk-ant-api03-...

# Verification Python
python -c "import anthropic; print(anthropic.__version__)"