Exécutez des exemples de requêtes d'API Amazon Bedrock via le AWS SDK pour Python (Boto3) - Amazon Bedrock

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 tester certaines opérations courantes dans Amazon Bedrock avec AWS Python pour 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 avez rempli les conditions préalables suivantes :

Prérequis

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 de plus amples informations, veuillez consulter Exemples de code pour Amazon Bedrock utilisant AWS SDKs.

Répertoriez les modèles de base 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 fondation (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 base 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 SDK pour Python suivant pour créer un client d'exécution Amazon Bedrock et 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.

Envoyer une demande de texte à un modèle et générer 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 Converse Operation Over InvokeModel lorsqu'il est pris en charge, car cela unifie la demande d'inférence entre les modèles Amazon Bedrock et simplifie la gestion des conversations à plusieurs tours. Exécutez le script SDK pour Python suivant pour créer un client d'exécution Amazon Bedrock et générer une réponse textuelle avec l'Converseopération :

# 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.