Votre première requête
Sur cette page
Le projet Google Cloud est prêt (leçon 2) : passons à la pratique. Dans cette leçon, vous allez envoyer votre première requête à Claude sur Vertex AI, et rencontrer les trois paramètres qui reviendront dans chaque appel du cours.
Installation
pip install -U "anthropic[vertex]"
C’est le SDK officiel d’Anthropic, avec l’extra vertex qui ajoute l’authentification Google Cloud. Le cours officiel installe "anthropic[vertex]<1", une ancienne version du SDK ; nous utilisons la version actuelle (2.5.0 au 5 novembre 2026), qui demande Python 3.10 ou plus.
Créer le client
from anthropic import AnthropicVertex
client = AnthropicVertex(project_id="votre-projet", region="global")
Deux paramètres : l’identifiant de votre projet Google Cloud, et la région. "global" est le point de terminaison recommandé : les requêtes vont vers toute région qui a de la capacité, sans surcoût. Si vos données doivent rester dans une zone, "us" ou "eu" désignent des multi-régions, facturées 10 % de plus ; les points de terminaison d’une seule région, comme "us-east5", ne servent que Claude Sonnet 4.6 et les modèles plus anciens. Notez ce que ce code ne contient pas : aucun secret. Le SDK utilise les identifiants par défaut de Google Cloud, configurés à la leçon 2 avec gcloud auth application-default login. Ce client sera créé une fois et réutilisé pour toutes les requêtes ; le cours officiel range aussi le nom du modèle dans une variable, model, ce que nous ferons à partir de la leçon suivante.
Envoyer une requête
La méthode principale est client.messages.create(). Elle prend trois paramètres obligatoires :
message = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=4096,
messages=[
{"role": "user", "content": "Qu'est-ce que l'informatique quantique ? Réponds en une phrase."}
]
)
Les trois paramètres obligatoires
| Paramètre | Description |
|---|---|
model | L’identifiant du modèle à utiliser |
max_tokens | Le nombre maximum de tokens que Claude peut générer |
messages | La liste des messages de la conversation |
Un mot sur max_tokens, souvent mal compris : c’est un plafond de sécurité, pas un objectif. Claude s’arrête quand sa réponse est finie ; la limite ne sert qu’à borner les réponses qui s’éterniseraient, et votre facture avec. Sur les modèles actuels, qui réfléchissent avant de répondre, la réflexion compte dans ce plafond : laissez de la marge, ici 4 096 tokens.
La structure d’un message
Chaque message est un dictionnaire avec deux champs :
role: soit"user"(vous), soit"assistant"(Claude)content: le texte du message
Notre liste n’a qu’un message pour l’instant — le strict minimum — mais cette structure de liste est la clé de tout ce qui suit : c’est en y accumulant les tours qu’on construira de vraies conversations.
Lire la réponse
La réponse est un objet Message. Son attribut content est une liste de blocs ; pour extraire le texte, on garde les blocs de type text :
print("".join(block.text for block in message.content if block.type == "text"))
Le cours officiel écrit message.content[0].text, qui fonctionne avec Claude Haiku 4.5 tant qu’il ne réfléchit pas. Avec Sonnet 5.5, qui réfléchit par défaut, le premier bloc peut être un bloc thinking, sans attribut text : ce raccourci plante. Cette liste de blocs portera plus loin dans le cours la réflexion, les outils et la vision, sans jamais changer de forme.
Exemple complet
from anthropic import AnthropicVertex
client = AnthropicVertex(project_id="votre-projet", region="global")
message = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=4096,
messages=[
{"role": "user", "content": "Explique-moi le concept de récursion en programmation, en 3 phrases."}
]
)
# Afficher la réponse (blocs de texte seulement)
print("".join(block.text for block in message.content if block.type == "text"))
# Afficher les tokens utilisés (la sortie inclut la réflexion)
print(f"\nTokens en entrée : {message.usage.input_tokens}")
print(f"Tokens en sortie : {message.usage.output_tokens}")
# Afficher la raison d'arrêt
print(f"Raison d'arrêt : {message.stop_reason}")
Les dernières lignes méritent le coup d’œil : usage donne les tokens consommés — la matière première de votre facturation, à surveiller dès maintenant — et stop_reason explique pourquoi la génération s’est arrêtée : end_turn pour une réponse complète, max_tokens pour une réponse tronquée par le plafond. Vérifier ce champ est le réflexe qui détecte les réponses coupées.
Explorer la réponse complète
Pour voir la structure complète de la réponse :
print(message)
Vous verrez tous les champs : id, type, role, content, model, stop_reason, usage. Prenez une minute pour les regarder une fois : savoir ce que l’API renvoie vraiment évite bien des surprises. Repérez en particulier si content commence par un bloc thinking.
À vous de jouer
Votre première requête. Reprenez l’exemple complet avec une question de votre métier. Lancez-le trois fois : la réponse change-t-elle ? Le nombre de tokens de sortie aussi ? Notez si content contient un bloc thinking.
Changer de modèle. Remplacez claude-sonnet-5-5 par claude-haiku-5-5, puis par claude-opus-5-5, et comparez la réponse, les tokens et le temps d’attente. Sur Vertex, les modèles Claude 4.6 et suivants gardent l’identifiant de l’API Claude ; les plus anciens ajoutent la date après un @, comme le claude-haiku-4-5@20251001 du cours officiel.
Sources officielles : Making a request (Claude Academy) · Claude Models on Google Cloud (Google managed) (documentation Claude : installation, client, points de terminaison) · Get started with Claude et Create a Message (documentation Claude)
Points clés à retenir
AnthropicVertex(project_id=..., region="global")crée le client, avec les identifiants par défaut de Google Cloud ;client.messages.create()est la méthode centrale.- Trois paramètres obligatoires :
model,max_tokens(un plafond, réflexion comprise),messages. contentest une liste de blocs : on lit les blocstext, pascontent[0].text.usagedonne les tokens consommés ;stop_reasondit si la réponse est complète ou tronquée.