Pour effectuer votre première requête API vers AWS Bedrock, trois composants essentiels sont nécessaires : un client d'exécution Bedrock (Bedrock Runtime Client) pour se connecter au service, un identifiant de modèle (Model ID) pour spécifier le modèle que vous souhaitez exécuter, et un message utilisateur (User Message) contenant le texte que vous souhaitez transmettre au modèle.
Configuration du client Bedrock
Commencez par créer un client à l'aide de boto3 pour vous connecter au service d'exécution Bedrock :
import boto3
client = boto3.client("bedrock-runtime", region_name="us-west-2")Comprendre les identifiants de modèle et la disponibilité régionale
C'est ici que les choses se compliquent. Tous les modèles ne sont pas disponibles dans toutes les régions AWS. Si vous essayez d'exécuter un modèle qui n'existe pas dans la région choisie, vous obtiendrez un message d'erreur cryptique indiquant que le modèle n'existe pas.

Par exemple, si Claude Sonnet est disponible dans us-west-2 mais que vous effectuez vos requêtes depuis us-east-1, votre requête échouera.

Utilisation des profils d'inférence
Les profils d'inférence résolvent le problème de disponibilité régionale en acheminant automatiquement vos requêtes vers une région où le modèle choisi est réellement hébergé.

Plutôt que de suivre quels modèles se trouvent dans quelles régions, vous pouvez utiliser un profil d'inférence qui sait que le modèle est disponible dans plusieurs régions comme us-west-2 et us-east-2.

Lorsque vous effectuez une requête à l'aide d'un profil d'inférence, AWS l'achemine automatiquement vers la région correcte où votre modèle existe, même si vous vous connectez depuis une région différente.
Pour trouver les identifiants de profil d'inférence, rendez-vous dans la console AWS Bedrock et recherchez sous « Cross-region inference » plutôt que d'utiliser l'identifiant de modèle de la page principale du catalogue de modèles.

Copiez l'identifiant de profil d'inférence pour le modèle choisi. Les exemples de ce cours utilisent Claude Haiku 4.5, dont l'identifiant de profil d'inférence est us.anthropic.claude-haiku-4-5-20251001-v1:0.
Création des messages utilisateur
Les messages utilisateur ont une structure spécifique qui peut sembler excessivement complexe au premier abord, mais il y a une bonne raison à cela :
user_message = {
"role": "user",
"content": [
{"text": "What's 1+1?"}
]
}Le contenu est une liste car un seul message peut contenir différents types de contenu - texte, images ou autres types de médias. Cette structure vous permet d'envoyer des requêtes multimodales.

Effectuer la requête
Vous pouvez maintenant effectuer votre appel API à l'aide de la méthode converse :
response = client.converse(
modelId=model_id,
messages=[user_message]
)La réponse contient beaucoup de métadonnées, mais pour obtenir uniquement le texte généré, vous devez naviguer dans la structure de la réponse :
response["output"]["message"]["content"][0]["text"]Comprendre les types de messages
Il existe deux principaux types de messages avec lesquels vous travaillerez :
- Messages utilisateur - Contenu que vous souhaitez transmettre au modèle (role : "user")
- Messages assistant - Contenu produit par le modèle (role : "assistant")

Les deux types de messages suivent la même structure avec un rôle et une liste de contenu. Cette cohérence facilite la construction de conversations en alternant entre messages utilisateur et messages assistant.
Le message assistant que vous recevez de Bedrock suit exactement le même format que votre message utilisateur, avec simplement un rôle différent. Cette structure standardisée permet d'enchaîner facilement plusieurs requêtes pour des conversations plus longues.