Eseguire esempi di richieste API Amazon Bedrock utilizzando un notebook Amazon SageMaker AI - Amazon Bedrock

Eseguire esempi di richieste API Amazon Bedrock utilizzando un notebook Amazon SageMaker AI

Questa sezione ti guida nell’esecuzione di alcune operazioni comuni in Amazon Bedrock utilizzando un notebook Amazon SageMaker AI, per verificare che le autorizzazioni del ruolo Amazon Bedrock siano configurate correttamente. Prima di eseguire i seguenti esempi, devi verificare di aver soddisfatto i seguenti prerequisiti:

Prerequisiti

  • Hai un Account AWS e disponi delle autorizzazioni per accedere a un ruolo con le autorizzazioni necessarie per Amazon Bedrock. In caso contrario, segui le fasi in Ho già un Account AWS.

  • Esegui i passaggi seguenti per configurare le autorizzazioni IAM per SageMaker AI e creare un notebook:

    1. Modifica la policy di attendibilità del ruolo Amazon Bedrock che configuri in Ho già un Account AWS tramite console, CLI o API. Collega la seguente policy di attendibilità al ruolo per consentire ai servizi Amazon Bedrock e SageMaker AI di assumere il ruolo Amazon Bedrock:

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "BedrockTrust", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Sid": "SagemakerTrust", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Accedi al ruolo di Amazon Bedrock di cui hai appena modificato la policy di attendibilità.

    3. Segui i passaggi riportati in Creare un’istanza del notebook Amazon SageMaker AI per il tutorial e specifica l’ARN del ruolo Amazon Bedrock che hai creato per creare un’istanza del notebook SageMaker AI.

    4. Quando lo Stato dell’istanza del notebook è InService, scegli l’istanza e quindi seleziona Apri JupyterLab.

Dopo aver aperto il notebook SageMaker AI, puoi provare i seguenti esempi:

Elencare i modelli di fondazione offerti da Amazon Bedrock

L’esempio seguente esegue l’operazione ListFoundationModels utilizzando un client Amazon Bedrock. ListFoundationModels elenca i modelli di fondazione (FM) disponibili in Amazon Bedrock nella tua Regione. Esegui il seguente script SDK per Python per creare un client Amazon Bedrock e testare l’operazione ListFoundationModels:

""" 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()

Se lo script ha esito positivo, la risposta restituisce un elenco di modelli di fondazione disponibili in Amazon Bedrock.

Inviare un prompt di testo a un modello e generare una risposta

L’esempio seguente esegue l’operazione Converse utilizzando un client Amazon Bedrock. Converse consente di inviare un prompt per generare una risposta del modello. Esegui il seguente script SDK per Python per creare un client di runtime Amazon Bedrock e testare l’operazione 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)

Se il comando ha esito positivo, la risposta invia il testo generato dal modello in risposta al prompt.