

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)
<a name="getting-started-api-ex-python"></a>

En esta sección, se explica cómo probar algunas operaciones habituales en Amazon Bedrock AWS Python para comprobar que los permisos y la 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](getting-started-api.md).
+ Has instalado y configurado la autenticación para el AWS SDK para Python (Boto3). Para instalar Boto3, siga los pasos en la sección [Quickstart](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) de la documentación de Boto3. Compruebe que ha configurado sus credenciales para usar Boto3 siguiendo los pasos que se indican en [Obtención de credenciales para conceder acceso programático](getting-started-api.md#gs-grant-program-access).

Compruebe que sus permisos estén configurados correctamente para Amazon Bedrock con 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](service_code_examples.md).

**Topics**
+ [Enumeración de los modelos fundacionales que ofrece Amazon Bedrock](#getting-started-api-ex-python-listfm)
+ [Envíe un mensaje de texto a un modelo y genere una respuesta de texto con InvokeModel](#getting-started-api-ex-python-invoke-text)
+ [Envío de una petición de texto a un modelo y generación de una respuesta de texto con Converse](#getting-started-api-ex-python-converse)

## Enumeración de los modelos fundacionales que ofrece Amazon Bedrock
<a name="getting-started-api-ex-python-listfm"></a>

En el siguiente ejemplo, se ejecuta la [ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)operació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 Amazon Bedrock y probar la [ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)operació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
<a name="getting-started-api-ex-python-invoke-text"></a>

En el siguiente ejemplo, se ejecuta la [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)operació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
<a name="getting-started-api-ex-python-converse"></a>

En el siguiente ejemplo se ejecuta la operación [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) 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.