Aller au contenu principal
Leçon 4 sur 67 · Claude sur Amazon Bedrock

Effectuer une requête

Leçon 4 sur 67 Mis à jour le 5 novembre 2026 Développeur
Sur cette page
  1. Installer et créer le client
  2. L’identifiant du modèle : un profil d’inférence
  3. Le message utilisateur
  4. Envoyer la requête
  5. Lire la réponse
  6. Les deux types de messages
  7. Autre voie : l’API Messages d’Anthropic
  8. À vous de jouer
  9. Points clés à retenir

Place au code : votre première requête à Claude sur Bedrock. Elle demande trois ingrédients, un client Bedrock Runtime, un identifiant de modèle et un message utilisateur. Cette leçon les assemble un par un, jusqu’à la première réponse.

Installer et créer le client

pip install boto3
import boto3

client = boto3.client("bedrock-runtime", region_name="us-east-1")

Deux choix se cachent dans cette ligne. Le service est bedrock-runtime, celui qui exécute les requêtes d’inférence, à ne pas confondre avec bedrock, le service de gestion (catalogue des modèles, configuration). Et la région est explicite : votre requête part vers us-east-1, la région de l’exemple officiel d’AWS pour Haiku 5.5. Le cours officiel utilise us-west-2 ; les deux conviennent. Notez ce que ce code ne contient pas : aucun secret. boto3 trouve seul les identifiants configurés à la leçon précédente.

L’identifiant du modèle : un profil d’inférence

Sur Bedrock, les modèles Claude récents ne s’appellent pas par leur identifiant brut, mais par un profil d’inférence. Un profil route chaque requête vers une région qui héberge le modèle et dispose de capacité. Pour Claude Haiku 5.5, la fiche AWS donne ces identifiants :

ProfilIdentifiantOù passent les requêtes
Globalglobal.anthropic.claude-haiku-5-5Toute région commerciale AWS qui sert le modèle, dans le monde entier
États-Unisus.anthropic.claude-haiku-5-5us-east-1, us-east-2, us-west-2 (et us-west-1 depuis cette région)
Union européenneeu.anthropic.claude-haiku-5-5Francfort, Stockholm, Milan, Espagne, Irlande, Paris (plus Zurich ou Londres quand l’appel part de ces régions)

Selon AWS, le profil global offre la plus large disponibilité et coûte environ 10 % de moins que les profils géographiques. Les profils géographiques, eux, gardent le traitement dans leur zone : si vos données doivent rester en Europe, appelez le profil eu. depuis une région européenne, par exemple region_name="eu-west-3" (Paris). Dans tous les cas, les données circulent sur le réseau d’AWS, chiffrées entre régions. Dans ce cours :

model_id = "global.anthropic.claude-haiku-5-5"

Le cours officiel utilise us.anthropic.claude-haiku-4-5-20251001-v1:0, le profil de Claude Haiku 4.5 : si votre compte n’a pas accès à Haiku 5.5, c’est la valeur à mettre ici. Pour trouver l’identifiant d’un autre modèle, ouvrez sa fiche dans la documentation AWS, section Programmatic Access, ou la page Cross-region inference de la console Bedrock.

Appeler l’identifiant brut d’un modèle qui exige un profil échoue. La documentation d’Anthropic cite ce message, pour un autre modèle : « Invocation of model ID anthropic.claude-sonnet-4-5-20250929-v1:0 with on-demand throughput isn’t supported. Retry your request with the ID or ARN of an inference profile that contains this model. » Si vous le voyez, ajoutez le préfixe du profil.

Trois ingrédients pour une requête Trois tuiles : le client boto3 du service bedrock-runtime, le profil d'inférence global de Claude Haiku 5.5, et le message utilisateur, une liste de blocs. PREMIÈRE REQUÊTE Trois ingrédients pour une requête 01 Le client boto3, service bedrock-runtime, une région explicite. us-east-1 02 Le profil Un profil d'inférence plutôt que l'identifiant brut du modèle. global. eu. us. 03 Le message Un rôle et une liste de blocs typés. role content La réponse est une liste de blocs : réflexion, puis texte. On garde les blocs qui ont une clé text.
D'après la leçon « Making a request » (Claude Academy, Claude with Amazon Bedrock) et la fiche Claude Haiku 5.5 (documentation AWS).

Le message utilisateur

user_message = {
    "role": "user",
    "content": [
        {"text": "Qu'est-ce que l'informatique quantique ? Réponds en une phrase."}
    ],
}

Le contenu est une liste de blocs, et ce n’est pas une lourdeur gratuite : un même message peut contenir du texte, des images ou des documents. Chaque bloc est un dictionnaire typé par sa clé ({"text": ...} pour du texte). Cette structure portera plus loin la vision, les PDF et les outils sans changer de forme.

Envoyer la requête

response = client.converse(
    modelId=model_id,
    messages=[user_message],
)

converse est l’API de conversation de Bedrock : la même interface pour tous les modèles qui la prennent en charge. Elle reçoit l’identifiant et la liste des messages. Le nombre maximal de tokens de la réponse est facultatif ; sans réglage, l’API prend le maximum permis par le modèle.

Lire la réponse

La réponse est un dictionnaire. Le message de Claude se trouve dans response["output"]["message"], au même format que les messages que vous envoyez : un rôle et une liste de blocs. Avec Haiku 5.5, cette liste ressemble souvent à ceci :

[
    {"reasoningContent": {"reasoningText": {"text": "", "signature": "..."}}},
    {"text": "L'informatique quantique exploite les qubits..."},
]

Le premier bloc est la trace de la réflexion du modèle. Sur Haiku 5.5, son texte est vide par défaut : il ne reste qu’une signature. Pour lire la réponse, on garde donc les blocs qui ont une clé text :

content = response["output"]["message"]["content"]
text = "".join(block["text"] for block in content if "text" in block)
print(text)

Le cours officiel écrit response["output"]["message"]["content"][0]["text"]. Ce raccourci fonctionne avec Haiku 4.5, qui ne réfléchit que si on le lui demande. Avec Haiku 5.5, il lève une KeyError dès que le modèle a réfléchi, c’est-à-dire de façon imprévisible. Prenez dès maintenant l’habitude de filtrer les blocs.

Deux autres champs méritent un coup d’œil à chaque appel :

  • response["stopReason"] dit pourquoi la génération s’est arrêtée : end_turn pour une réponse complète, max_tokens pour une réponse coupée par la limite.
  • response["usage"] donne les tokens consommés (inputTokens, outputTokens, totalTokens), la base de votre facture. La réflexion compte dans les tokens de sortie.

Les deux types de messages

  • Messages utilisateur ("role": "user") : ce que vous envoyez au modèle.
  • Messages assistant ("role": "assistant") : ce que le modèle a produit.

Les deux partagent la même structure, un rôle et une liste de blocs. C’est ce qui permet d’enchaîner les requêtes : une réponse peut rejoindre la liste des messages de l’appel suivant. C’est le sujet de la prochaine leçon.

Autre voie : l’API Messages d’Anthropic

Bedrock sert aussi Claude avec l’API Messages d’Anthropic, sous le nom « Claude in Amazon Bedrock ». Le code ressemble alors à celui de l’API Claude directe, avec le client AnthropicBedrockMantle du SDK d’Anthropic, qui signe les requêtes avec vos identifiants AWS :

pip install -U "anthropic[bedrock]"
from anthropic import AnthropicBedrockMantle

client = AnthropicBedrockMantle(aws_region="us-east-1")

message = client.messages.create(
    model="anthropic.claude-haiku-5-5",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Bonjour, Claude"}],
)
print(next(block.text for block in message.content if block.type == "text"))

Sur cette voie, les identifiants de modèles prennent le préfixe anthropic. sans profil, et le formulaire d’Anthropic vu à la leçon 3 n’est pas demandé. Certaines fonctionnalités de l’API Claude directe n’y sont pas disponibles, comme le traitement par lots (Message Batches) ou la recherche web. Ce cours garde l’API Converse, celle du cours officiel.

À vous de jouer

Votre première requête. Assemblez le client, le profil et le message dans un script, puis lancez-le trois fois. Affichez le texte, stopReason et usage. Notez aussi, à chaque fois, si la liste content commence par un bloc reasoningContent.

Lire une erreur. Remplacez le profil par l’identifiant brut anthropic.claude-haiku-5-5 et lisez le message d’erreur renvoyé. Remettez ensuite le profil global.

Sources officielles : Making a request (Claude Academy) · API Converse, Cross-Region inference et fiche Claude Haiku 5.5 (documentation AWS) · Claude in Amazon Bedrock et Claude on Amazon Bedrock (Opus 4.6 and earlier) (documentation Claude)

Points clés à retenir

  • Trois ingrédients : un client bedrock-runtime, un identifiant de modèle, une liste de messages.
  • Les modèles Claude récents s’appellent par un profil d’inférence : global. pour la disponibilité et le prix, eu. ou us. pour garder le traitement dans une zone.
  • La réponse est une liste de blocs : on lit les blocs qui ont une clé text, jamais content[0]["text"].
  • stopReason dit si la réponse est complète ; usage compte les tokens, réflexion comprise.
  • L’API Messages d’Anthropic existe aussi sur Bedrock, avec le client AnthropicBedrockMantle.