All guides
IntermediateSelf-pacedFree GuideSection 66/95

API Anthropic — Claude et ses spécificités

Practise development foundations: programming, web, APIs, data and AI tools. Work through sections and exercises to build your first projects.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and sources

Section 11.4.7 : API Anthropic — Claude et ses spécificités

🎯 Objectif pédagogique

Maîtriser l'API Anthropic (Claude) et comprendre ses différences avec OpenAI. Vous serez capable d'utiliser Claude pour des tâches nécessitant de longs contextes, une analyse nuancée, et de gérer les deux APIs dans vos projets.


Pourquoi apprendre deux APIs ?

Marc utilise GPT-4o. Mais dans le monde professionnel, les équipes utilisent plusieurs LLMs selon les tâches. Claude excelle dans l'analyse de longs documents, le raisonnement nuancé, et le suivi d'instructions complexes. Connaître les deux fait de Marc un développeur IA complet.

Configuration Anthropic

# pip install anthropic python-dotenv

# .env
# ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx

import os
from dotenv import load_dotenv
import anthropic

load_dotenv()
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

Appel basique — Messages API

def ask_claude(prompt, system_prompt="Tu es un assistant utile.", model="claude-sonnet-4-20250514"):
    """Appel simple à l'API Anthropic."""
    message = client.messages.create(
        model=model,
        max_tokens=1024,
        system=system_prompt,  # System prompt séparé (pas dans messages)
        messages=[
            \{"role": "user", "content": prompt\}
        ]
    )
    
    return message.content[0].text

# Utilisation
result = ask_claude("Analyse les tendances du marché data analyst en France pour 2025.")
print(result)

Différences d'API : Anthropic vs OpenAI

# OPENAI :
response = openai_client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        \{"role": "system", "content": "Tu es expert."\},  # System dans messages
        \{"role": "user", "content": "Question"\}
    ],
    temperature=0.7,
    max_tokens=1000
)
text = response.choices[0].message.content

# ANTHROPIC :
response = anthropic_client.messages.create(
    model="claude-sonnet-4-20250514",
    system="Tu es expert.",        # System SÉPARÉ
    messages=[
        \{"role": "user", "content": "Question"\}
    ],
    temperature=0.7,              # Même paramètre
    max_tokens=1000
)
text = response.content[0].text   # .content[0].text vs .choices[0].message.content

Analyse de long document (force de Claude)

def analyze_long_document(document_text, questions):
    """Analyser un long document (CV, rapport, article) avec Claude."""
    prompt = f"""Voici un document à analyser :

<document>
\{document_text\}
</document>

Réponds aux questions suivantes en te basant UNIQUEMENT sur le document :

\{chr(10).join(f'\{i+1\}. \{q\}' for i, q in enumerate(questions))\}

Pour chaque réponse, cite le passage pertinent du document entre guillemets."""

    message = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=2000,
        system="Tu es un analyste de documents expert. Sois précis et cite tes sources.",
        messages=[\{"role": "user", "content": prompt\}]
    )
    
    return message.content[0].text

# Utilisation : analyser un long rapport
with open("rapport_annuel.txt", "r", encoding="utf-8") as f:
    report = f.read()  # Peut être 50+ pages

result = analyze_long_document(report, [
    "Quel est le chiffre d'affaires 2024 ?",
    "Quelles sont les priorités stratégiques mentionnées ?",
    "Combien de nouveaux employés ont été embauchés ?"
])
print(result)

XML tags — Feature unique Anthropic

# Claude comprend les balises XML pour structurer les prompts
prompt = """Analyse cette candidature :

<candidat>
  <nom>Marc Dupont</nom>
  <experience>8 ans finance, 3 mois data/IA</experience>
  <competences>Python, SQL, Excel avancé, présentation de données</competences>
</candidat>

<poste>
  <titre>Data Analyst Junior</titre>
  <entreprise>TechStartup</entreprise>
  <requis>Python, SQL, Tableau, esprit analytique</requis>
</poste>

<format_reponse>
Donne ton analyse dans ce format :
- Match score : X/10
- Forces : [liste]
- Gaps : [liste]  
- Verdict : POSTULER / PASSER / PEUT-ÊTRE
- Plan d'action : [si PEUT-ÊTRE ou POSTULER]
</format_reponse>"""

Classe wrapper multi-LLM

class LLMClient:
    """Client unifié pour OpenAI et Anthropic."""
    
    def __init__(self):
        self.openai = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
        self.anthropic = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
    
    def ask(self, prompt, system="Tu es un assistant utile.", 
            provider="openai", model=None):
        """Interface unifiée pour les deux providers."""
        
        if provider == "openai":
            model = model or "gpt-4o-mini"
            response = self.openai.chat.completions.create(
                model=model,
                messages=[
                    \{"role": "system", "content": system\},
                    \{"role": "user", "content": prompt\}
                ]
            )
            return response.choices[0].message.content
        
        elif provider == "anthropic":
            model = model or "claude-sonnet-4-20250514"
            response = self.anthropic.messages.create(
                model=model,
                max_tokens=1024,
                system=system,
                messages=[\{"role": "user", "content": prompt\}]
            )
            return response.content[0].text

# Utilisation
llm = LLMClient()

# Extraction rapide → OpenAI (moins cher)
skills = llm.ask("Extrais les compétences de cette offre en JSON", provider="openai")

# Analyse nuancée → Claude (meilleur sur les textes longs)
analysis = llm.ask("Analyse ce rapport de 50 pages", provider="anthropic")

Quand utiliser Claude vs GPT

Claude : longs documents (200k tokens), analyse nuancée, suivi d'instructions complexes, XML structuré, éthique/sécurité. GPT-4o : code generation, API plus mature, plugins/tools, batch API pour le volume. gpt-4o-mini : extraction, classification, tâches simples à faible coût.

🏋️ Exercice pratique (25 minutes)

  1. →Créez un compte Anthropic et générez une clé API
  2. →Écrivez le même prompt d'analyse d'offre pour Claude et GPT-4o
  3. →Comparez les réponses (ton, structure, détail)
  4. →Implémentez le LLMClient multi-provider
  5. →Testez l'analyse d'un long document (article Wikipedia) avec Claude
Quick Check

Quelle est la principale force de Claude par rapport à GPT-4o ?

Quick Check

Pourquoi créer un LLMClient unifié plutôt que d'appeler directement chaque API ?

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.