Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exécutez des exemples de requêtes d'API Amazon Bedrock via le AWS SDK pour Python (Boto3)
Cette section vous explique comment essayer certaines opérations courantes dans Amazon Bedrock AWS Python afin de vérifier que vos autorisations et votre authentification sont correctement configurées. Avant d’exécuter les exemples suivants, vous devez vérifier que vous remplissez les conditions préalables suivantes :
Conditions préalables
-
Vous avez un Compte AWS utilisateur ou un rôle avec l'authentification configurée et les autorisations nécessaires pour Amazon Bedrock. Sinon, suivez les étapes décrites dans Démarrage avec l’API.
-
Vous avez installé et configuré l'authentification pour le AWS SDK pour Python (Boto3). Pour installer Boto3, suivez les étapes décrites dans Démarrage rapide
dans la documentation de Boto3. Vérifiez que vous avez configuré vos informations d’identification pour utiliser Boto3 en suivant les étapes décrites dans Obtention des informations d’identification pour accorder un accès programmatique.
Vérifiez que vos autorisations sont correctement configurées pour Amazon Bedrock, en utilisant un utilisateur ou un rôle que vous avez configuré avec les autorisations appropriées.
La documentation Amazon Bedrock inclut également des exemples de code pour d’autres langages de programmation. Pour plus d’informations, consultez Exemples de code pour Amazon Bedrock utilisant AWS SDKs.
Rubriques
Liste des modèles de fondation proposés par Amazon Bedrock
L'exemple suivant exécute l'ListFoundationModelsopération à l'aide d'un client Amazon Bedrock. ListFoundationModelsrépertorie les modèles de base (FMs) disponibles sur Amazon Bedrock dans votre région. Exécutez le script SDK pour Python suivant pour créer un client Amazon Bedrock et tester le ListFoundationModelsfonctionnement :
""" Lists the available Amazon Bedrock models in an &AWS-Region;. """ import logging import json import boto3 from botocore.exceptions import ClientError logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def list_foundation_models(bedrock_client): """ Gets a list of available Amazon Bedrock foundation models. :return: The list of available bedrock foundation models. """ try: response = bedrock_client.list_foundation_models() models = response["modelSummaries"] logger.info("Got %s foundation models.", len(models)) return models except ClientError: logger.error("Couldn't list foundation models.") raise def main(): """Entry point for the example. Change aws_region to the &AWS-Region; that you want to use.""" aws_region = "us-east-1" bedrock_client = boto3.client(service_name="bedrock", region_name=aws_region) fm_models = list_foundation_models(bedrock_client) for model in fm_models: print(f"Model: {model["modelName"]}") print(json.dumps(model, indent=2)) print("---------------------------\n") logger.info("Done.") if __name__ == "__main__": main()
Si le script aboutit, la réponse renvoie une liste des modèles de fondation disponibles sur Amazon Bedrock.
Envoyez une demande de texte à un modèle et générez une réponse textuelle avec InvokeModel
L'exemple suivant exécute l'InvokeModelopération à l'aide d'un client Amazon Bedrock. InvokeModelvous permet d'envoyer une invite pour générer un modèle de réponse. Exécutez le script du kit SDK pour Python suivant afin de créer un client d’exécution Amazon Bedrock et de générer une réponse textuelle avec l’opération :
# Use the native inference API to send a text message to Amazon Titan Text G1 - Express. import boto3 import json from botocore.exceptions import ClientError # Create an Amazon Bedrock Runtime client. brt = boto3.client("bedrock-runtime") # Set the model ID, e.g., Amazon Titan Text G1 - Express. model_id = "amazon.titan-text-express-v1" # Define the prompt for the model. prompt = "Describe the purpose of a 'hello world' program in one line." # Format the request payload using the model's native structure. native_request = { "inputText": prompt, "textGenerationConfig": { "maxTokenCount": 512, "temperature": 0.5, "topP": 0.9 }, } # Convert the native request to JSON. request = json.dumps(native_request) try: # Invoke the model with the request. response = brt.invoke_model(modelId=model_id, body=request) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1) # Decode the response body. model_response = json.loads(response["body"].read()) # Extract and print the response text. response_text = model_response["results"][0]["outputText"] print(response_text)
Si la commande aboutit, la réponse renvoie le texte généré par le modèle en réponse à l’invite.
Soumission d’une invite de texte à un modèle et génération d’une réponse textuelle avec Converse
L’exemple suivant exécute l’opération Converse à l’aide d’un client Amazon Bedrock. Nous recommandons d’utiliser l’opération Converse plutôt que InvokeModel lorsqu’elle est prise en charge, car elle unifie la demande d’inférence entre les modèles Amazon Bedrock et simplifie la gestion des conversations complexes. Exécutez le script du kit SDK pour Python suivant afin de créer un client d’exécution Amazon Bedrock et de générer une réponse textuelle avec l’opération Converse :
# Use the Conversation API to send a text message to Amazon Titan Text G1 - Express. import boto3 from botocore.exceptions import ClientError # Create an Amazon Bedrock Runtime client. brt = boto3.client("bedrock-runtime") # Set the model ID, e.g., Amazon Titan Text G1 - Express. model_id = "amazon.titan-text-express-v1" # Start a conversation with the user message. user_message = "Describe the purpose of a 'hello world' program in one line." conversation = [ { "role": "user", "content": [{"text": user_message}], } ] try: # Send the message to the model, using a basic inference configuration. response = brt.converse( modelId=model_id, messages=conversation, inferenceConfig={"maxTokens": 512, "temperature": 0.5, "topP": 0.9}, ) # Extract and print the response text. response_text = response["output"]["message"]["content"][0]["text"] print(response_text) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1)
Si la commande aboutit, la réponse renvoie le texte généré par le modèle en réponse à l’invite.