Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Eseguire esempi di richieste di API Amazon Bedrock tramite AWS SDK per Python (Boto3)
Questa sezione ti guida nell’esecuzione di alcune operazioni comuni in Amazon Bedrock utilizzando AWS Python per verificare che le autorizzazioni e l’autenticazione siano configurate correttamente. Prima di eseguire i seguenti esempi, devi verificare di aver soddisfatto i seguenti prerequisiti:
Prerequisiti
-
Hai un Account AWS e un utente o un ruolo con autenticazione configurata e le autorizzazioni necessarie per Amazon Bedrock. In caso contrario, segui le fasi in Iniziare a utilizzare l’API.
-
Hai installato e configurato l’autenticazione per AWS SDK per Python (Boto3). Per installare Boto3, segui la procedura indicata alla pagina Quickstart
della documentazione di Boto3. Verifica di aver configurato le credenziali per utilizzare Boto3 seguendo la procedura indicata alla pagina Ottenere le credenziali per concedere l’accesso programmatico.
Verifica che le tue autorizzazioni siano configurate correttamente per Amazon Bedrock, utilizzando un utente o un ruolo che hai configurato con le autorizzazioni appropriate.
La documentazione di Amazon Bedrock include anche esempi di codice per altri linguaggi di programmazione. Per ulteriori informazioni, consulta Esempi di codice per l'utilizzo di Amazon Bedrock AWS SDKs.
Argomenti
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 testuale con InvokeModel
L’esempio seguente esegue l’operazione InvokeModel utilizzando un client Amazon Bedrock. InvokeModel 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 generare una risposta testuale con l’operazione :
# 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)
Se il comando ha esito positivo, la risposta invia il testo generato dal modello in risposta al prompt.
Inviare un prompt di testo a un modello e generare una risposta testuale con Converse
L’esempio seguente esegue l’operazione Converse utilizzando un client Amazon Bedrock. Ti consigliamo di utilizzare l’operazione Converse invece di InvokeModel quando supportata, perché unifica la richiesta di inferenza tra i modelli di Amazon Bedrock e semplifica la gestione delle conversazioni multi-turno. Esegui il seguente script SDK per Python per creare un client di runtime Amazon Bedrock e generare una risposta testuale con 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.