Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejecute solicitudes de API de Amazon Bedrock de ejemplo a través del AWS SDK para Python (Boto3)
En esta sección, se explica cómo probar algunas operaciones habituales en Amazon Bedrock con AWS Python para comprobar que sus permisos y su autenticación están configurados correctamente. Antes de ejecutar los siguientes ejemplos, debe comprobar que cumple los requisitos previos que se indican a continuación:
Requisitos previos
-
Tiene un Cuenta de AWS usuario o rol con la autenticación configurada y los permisos necesarios para Amazon Bedrock. De lo contrario, siga estos pasos en Introducción a la API de .
-
Ha solicitado acceso a Amazon Titan Text G1 - Express modelo. De lo contrario, siga estos pasos en Solicitud de acceso a un modelo fundacional de Amazon Bedrock.
-
Has instalado y configurado la autenticación para el AWS SDK para Python (Boto3). Para instalar Boto3, sigue los pasos que se indican en la sección de inicio rápido
de la documentación de Boto3. Comprueba que has configurado tus credenciales para usar Boto3 siguiendo los pasos que se indican en. Obtenga credenciales para conceder acceso programático
Compruebe que sus permisos estén configurados correctamente para Amazon Bedrock, utilizando un usuario o rol que haya configurado con los permisos adecuados.
La documentación de Amazon Bedrock también incluye ejemplos de código para otros lenguajes de programación. Para obtener más información, consulte Ejemplos de código para Amazon Bedrock mediante AWS SDKs.
Temas
Enumeración de los modelos fundacionales que ofrece Amazon Bedrock
En el siguiente ejemplo, se ejecuta la ListFoundationModelsoperación con un cliente de Amazon Bedrock. ListFoundationModels
muestra los modelos de base (FMs) que están disponibles en Amazon Bedrock en su región. Ejecute el siguiente script de SDK para Python para crear un cliente de Amazon Bedrock y probar la ListFoundationModelsoperación:
""" 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 el script se ejecuta correctamente, la respuesta devuelve una lista de modelos fundacionales disponibles en Amazon Bedrock.
Envíe un mensaje de texto a un modelo y genere una respuesta de texto con InvokeModel
En el siguiente ejemplo, se ejecuta la InvokeModeloperación con un cliente de Amazon Bedrock. InvokeModel
le permite enviar un mensaje para generar una respuesta modelo. Ejecute el siguiente script de SDK para Python para crear un cliente de tiempo de ejecución de Amazon Bedrock y generar una respuesta de texto con la operación :
# 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 el comando se ejecuta correctamente, la respuesta devuelve el texto generado por el modelo en respuesta a la petición.
Envío de una petición de texto a un modelo y generación de una respuesta de texto con Converse
En el siguiente ejemplo se ejecuta la operación Converse con un cliente de Amazon Bedrock. Recomendamos utilizar la operación Converse
en lugar de InvokeModel
cuando sea compatible, ya que unifica la solicitud de inferencia en todos los modelos de Amazon Bedrock y simplifica la administración de las conversaciones en varios turnos. Ejecute el siguiente script de SDK para Python para crear un cliente de tiempo de ejecución de Amazon Bedrock y generar una respuesta de texto con la operación 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 el comando se ejecuta correctamente, la respuesta devuelve el texto generado por el modelo en respuesta a la petición.