Tous les guides
IntermédiaireÀ votre rythmeGuide gratuitSection 66/95

API Anthropic — Claude et ses spécificités

Pratiquez les fondations du développement : programmation, web, API, données et usages de l’IA. Des sections et exercices pour construire vos premiers projets.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et 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
Vérification rapide

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

Vérification rapide

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

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.