

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.

# Introducción detallada al uso de la consola y la API
<a name="detailed-getting-started"></a>

El contenido estará disponible próximamente.

# Introducción a la consola de Amazon Bedrock
<a name="getting-started-console"></a>

En esta sección se describe cómo utilizar los [parques infantiles](playgrounds.md) de la AWS consola para enviar un mensaje de texto a un modelo de base (FM) de Amazon Bedrock y generar una respuesta de texto o imagen. Antes de ejecutar los siguientes ejemplos, debe comprobar que cumple los requisitos previos que se indican a continuación:

**Requisitos previos**
+ Tiene un rol en esa cuenta Cuenta de AWS y tiene permisos para acceder a él con los permisos necesarios para Amazon Bedrock. De lo contrario, siga estos pasos en [Inicio rápido](getting-started.md).
+ Está en la región Este de EE. UU. (Norte de Virginia) (us-east-1). Para cambiar de región, elija el nombre de la región en la parte superior derecha de la consola, junto a su rol de IAM. A continuación, seleccione Este de EE. UU. (Norte de Virginia) (us-east-1).

**Topics**
+ [Exploración del área de juego de texto](#getting-started-text)
+ [Exploración del área de juegos de imágenes](#getting-started-image)

## Exploración del área de juego de texto
<a name="getting-started-text"></a>

El siguiente ejemplo muestra cómo usar el área de juegos de texto:

1. Inicie sesión Consola de administración de AWS con una identidad de IAM que tenga permisos para usar la consola Amazon Bedrock. A continuación, abra la consola de Amazon Bedrock en [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. En el panel de navegación de la izquierda, elija **Texto** en **Áreas de juego**.

1. Elija **Seleccionar modelo**. A continuación, seleccione un proveedor y un modelo. Para este ejemplo, seleccionaremos **Amazon Titan Text G1 - Lite**. A continuación, elija **Aplicar**.

1. Seleccione una petición predeterminada debajo del panel de texto o introduzca una petición en el panel de texto, como **Describe the purpose of a "hello world" program in one line**.

1. Seleccione **Ejecutar** para ejecutar la inferencia en el modelo. El texto generado aparece debajo de la petición en el panel de texto.

## Exploración del área de juegos de imágenes
<a name="getting-started-image"></a>

El siguiente ejemplo muestra cómo usar el área de juegos de imágenes.

1. Inicie sesión Consola de administración de AWS con una identidad de IAM que tenga permisos para usar la consola Amazon Bedrock. A continuación, abra la consola de Amazon Bedrock en [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. En el panel de navegación de la izquierda, elija **Imagen** en **Áreas de juego**.

1. Elija **Seleccionar modelo**. A continuación, seleccione un proveedor y un modelo. Para este ejemplo, seleccionaremos **Amazon Titan Image Generator G1 V1**. A continuación, elija **Aplicar**.

1. Seleccione una petición predeterminada debajo del panel de texto o introduzca una petición en el panel de texto, como **Generate an image of happy cats**.

1. En el panel **Configuraciones**, cambie la **Cantidad de imágenes** a **1**.

1. Seleccione **Ejecutar** para ejecutar la inferencia en el modelo. La imagen generada aparece encima de la petición.

# Introducción a la API
<a name="getting-started-api"></a>

En esta sección se describe cómo configurar su entorno para realizar solicitudes de Amazon Bedrock a través de la AWS API. AWS ofrece las siguientes herramientas para optimizar su experiencia:
+ AWS Command Line Interface (AWS CLI)
+ AWS SDKs
+ Cuadernos Amazon SageMaker AI

Para empezar a utilizar la API, necesita credenciales para conceder el acceso programático. Si las siguientes secciones son pertinentes para usted, expándalas y siga las instrucciones. De lo contrario, continúe con las secciones restantes.

## Soy nuevo en AWS
<a name="gs-api-new-to-aws"></a>

Si no tiene uno Cuenta de AWS, complete los siguientes pasos para crearlo.

**Para suscribirte a una Cuenta de AWS**

1. Abrir [https://portal.aws.amazon.com/billing/registro](https://portal.aws.amazon.com/billing/signup).

1. Siga las instrucciones que se le indiquen.

   Parte del procedimiento de registro consiste en recibir una llamada telefónica o mensaje de texto e indicar un código de verificación en el teclado del teléfono.

   Cuando te registras en un Cuenta de AWS, *Usuario raíz de la cuenta de AWS*se crea un. El usuario raíz tendrá acceso a todos los Servicios de AWS y recursos de esa cuenta. Como práctica recomendada de seguridad, asigne acceso administrativo a un usuario y utilice únicamente el usuario raíz para realizar [Tareas que requieren acceso de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS te envía un correo electrónico de confirmación una vez finalizado el proceso de registro. En cualquier momento, puede ver la actividad de su cuenta actual y administrarla accediendo a [https://aws.amazon.com/](https://aws.amazon.com/)y seleccionando **Mi cuenta**.

**Proteja su Usuario raíz de la cuenta de AWS**

1.  Inicie sesión [Consola de administración de AWS](https://console.aws.amazon.com/)como propietario de la cuenta seleccionando el **usuario root** e introduciendo su dirección de Cuenta de AWS correo electrónico. En la siguiente página, escriba su contraseña.

   Para obtener ayuda para iniciar sesión con el usuario raíz, consulte [Iniciar sesión como usuario raíz](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) en la *Guía del usuario de AWS Sign-In *.

1. Active la autenticación multifactor (MFA) para el usuario raíz.

   Para obtener instrucciones, consulte [Habilitar un dispositivo MFA virtual para el usuario Cuenta de AWS raíz (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) en la Guía del usuario de *IAM*.

## Necesito instalar el AWS CLI o un SDK AWS
<a name="gs-api-cli-sdk-install"></a>

Para instalar el AWS CLI, sigue los pasos que se indican en [Instalar o actualizar a la última versión del AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Para instalar un AWS SDK, selecciona la pestaña correspondiente al lenguaje de programación que deseas usar en [Herramientas para construir AWS](https://aws.amazon.com/developer/tools/). AWS Los kits de desarrollo de software (SDKs) están disponibles para muchos lenguajes de programación populares. Cada SDK proporciona una API, ejemplos de código y documentación que facilitan a los desarrolladores la creación de aplicaciones en su idioma preferido. SDKs realizan automáticamente tareas útiles para usted, como:
+ firma criptográfica de las solicitudes de servicio,
+ reintento de solicitudes,
+ gestión de las respuestas de error.

## Obtención de credenciales para conceder acceso programático
<a name="gs-grant-program-access"></a>

Los usuarios necesitan acceso programático si quieren interactuar con personas AWS ajenas a. Consola de administración de AWS AWS ofrece varias opciones, en función de sus preocupaciones de seguridad.

**nota**  
Para obtener una step-by-step guía sobre cómo generar una clave de API que pueda usar para acceder rápidamente a la API de Amazon Bedrock, consulte[Introducción a las claves de API de Amazon Bedrock: generación de una clave de 30 días y ejecución de una primera llamada a la API](getting-started-api-keys.md).  
Si sus requisitos de seguridad son mayores, consulte esta sección.

La forma de conceder el acceso programático depende del tipo de usuario que acceda. AWS

Para conceder acceso programático a los usuarios, elija una de las siguientes opciones.


****  

| ¿Qué entidad principal necesita acceso programático? | Para | Mediante | 
| --- | --- | --- | 
| Usuarios de IAM | Limite la duración de las credenciales de larga duración para firmar las solicitudes programáticas dirigidas al AWS CLI AWS SDKs, o. AWS APIs |  Siga las instrucciones de la interfaz que desea utilizar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/getting-started-api.html)  | 
| Roles de IAM | Utilice credenciales temporales para firmar las solicitudes programáticas dirigidas al AWS CLI, AWS SDKs o. AWS APIs | Siga las instrucciones de [Uso de credenciales temporales con AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) de la Guía del usuario de IAM. | 
|  Identidad del personal (Usuarios administrados en el IAM Identity Center)  | Utilice credenciales temporales para firmar las solicitudes programáticas dirigidas al AWS CLI AWS SDKs, o. AWS APIs |  Siga las instrucciones de la interfaz que desea utilizar: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/getting-started-api.html)  | 

## Cómo configurar claves de acceso para un usuario de IAM
<a name="create-user-time-bound"></a>

Si decide utilizar claves de acceso para un usuario de IAM, le AWS recomienda que establezca una fecha de caducidad para el usuario de IAM mediante la inclusión de una política restrictiva en línea.

**importante**  
Preste atención a las siguientes advertencias:  
**NO** utilice las credenciales raíz de su cuenta para acceder a los recursos. AWS Estas credenciales proporcionan acceso ilimitado a la cuenta y son difíciles de revocar.
**NO** incluya claves de acceso literales ni información sobre credenciales en sus archivos de aplicación. Si lo hace, puede crear un riesgo de exposición accidental de sus credenciales si, por ejemplo, carga el proyecto en un repositorio público.
**NO** incluya archivos que contengan credenciales en el área del proyecto.
Administre las claves de acceso de forma segura. No proporcione sus claves de acceso a terceros no autorizados, ni siquiera para que le ayuden a [buscar sus identificadores de cuenta](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html). De este modo, podrías dar a alguien acceso permanente a tu cuenta.
Ten en cuenta que todas las credenciales almacenadas en el archivo de AWS credenciales compartidas se almacenan en texto sin formato.

Para obtener más información, consulte [Prácticas recomendadas para administrar las claves de AWS acceso](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) en. Referencia general de AWS

**Creación de un usuario de IAM**

1. En la página de Consola de administración de AWS inicio, seleccione el servicio de IAM o vaya a la consola de IAM en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación, seleccione **Usuarios** y, a continuación, seleccione **Crear usuario**.

1. Siga las instrucciones de la consola de IAM para configurar un usuario programático (sin acceso a la Consola de administración de AWS) y sin permisos.

**Restricción del acceso del usuario a un período limitado**

Todas las claves de acceso de usuario de IAM que cree son credenciales a largo plazo. Para garantizar que estas credenciales caduquen en caso de que se usen de forma incorrecta, puede establecer un límite de tiempo para estas credenciales creando una política insertada que especifique una fecha a partir de la cual las claves dejarán de ser válidas.

1. Abra el usuario de IAM que acaba de crear. En la pestaña **Permisos**, elija **Agregar permisos** y después **Crear política insertada**.

1. En el editor JSON, especifique los siguientes permisos. Para utilizar esta política, sustituya el valor de la marca temporal de `aws:CurrentTime` de la política de ejemplo por su propia fecha de finalización.
**nota**  
IAM recomienda limitar sus claves de acceso a 12 horas.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "DateGreaterThan": {
             "aws:CurrentTime": "2024-01-01T00:00:000"
           }
         }
       }
     ]
   }
   ```

------

**Creación de una clave de acceso**

1. En la página **Información del usuario**, seleccione la pestaña **Credenciales de seguridad**. En la sección **Claves de acceso**, haga clic en **Crear clave de acceso**.

1. Indique que planea usar estas claves de acceso como **Otro** y elija **Crear clave de acceso**.

1. En la página **Retrieve access key page** (Recuperar clave de acceso), elija **Show** (Mostrar) para revelar el valor de la clave de acceso secreta de su usuario. Puede copiar las credenciales o descargar un archivo .csv.

**importante**  
Cuando ya no necesite este usuario de IAM, le recomendamos que lo elimine y siga las [mejores prácticas de AWS seguridad](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials). Le recomendamos que exija a sus usuarios humanos que utilicen credenciales temporales a través del Centro de [Identidad de AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) al acceder. AWS

## Cómo adjuntar permisos de Amazon Bedrock a un usuario o rol
<a name="gs-api-br-permissions"></a>

Tras configurar las credenciales para el acceso programático, debe configurar los permisos para que un usuario o rol de IAM pueda acceder a un conjunto de acciones relacionadas con Amazon Bedrock. Para configurar estos permisos, haga lo siguiente:

1. En la página de Consola de administración de AWS inicio, seleccione el servicio de IAM o vaya a la consola de IAM en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Seleccione **Usuarios** o **Roles** y, a continuación, seleccione su usuario o rol.

1. En la pestaña **Permisos**, selecciona **Añadir permisos** y, a continuación, selecciona **Añadir política AWS gestionada**. Elija la política administrada [AmazonBedrockFullAccess]() AWS .

1. Para permitir que el usuario o el rol se suscriban a los modelos, seleccione **Crear política insertada** y, a continuación, especifique los siguientes permisos en el editor JSON:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Sid": "MarketplaceBedrock",
             "Effect": "Allow",
             "Action": [
                 "aws-marketplace:ViewSubscriptions",
                 "aws-marketplace:Unsubscribe",
                 "aws-marketplace:Subscribe"
             ],
             "Resource": "*"
         }
     ]
   }
   ```

------

## Prueba de realización de llamadas de API a Amazon Bedrock
<a name="gs-try-bedrock"></a>

Una vez que haya cumplido todos los requisitos previos, seleccione uno de los siguientes temas para intentar realizar solicitudes de invocación de modelos con modelos de Amazon Bedrock:

**Topics**
+ [Obtención de credenciales para conceder acceso programático](#gs-grant-program-access)
+ [Cómo adjuntar permisos de Amazon Bedrock a un usuario o rol](#gs-api-br-permissions)
+ [Prueba de realización de llamadas de API a Amazon Bedrock](#gs-try-bedrock)
+ [Introducción a las claves de API de Amazon Bedrock: generación de una clave de 30 días y ejecución de una primera llamada a la API](getting-started-api-keys.md)
+ [Ejecute solicitudes de API de Amazon Bedrock de ejemplo con AWS Command Line Interface](getting-started-api-ex-cli.md)
+ [Ejecute solicitudes de API de Amazon Bedrock de ejemplo a través del AWS SDK para Python (Boto3)](getting-started-api-ex-python.md)
+ [Ejecute solicitudes de API de Amazon Bedrock de ejemplo con un bloc de notas Amazon SageMaker AI](getting-started-api-ex-sm.md)

# Introducción a las claves de API de Amazon Bedrock: generación de una clave de 30 días y ejecución de una primera llamada a la API
<a name="getting-started-api-keys"></a>

En este tutorial, se explica cómo crear una clave de API de Amazon Bedrock de larga duración que caduca a los 30 días y cómo utilizarla para realizar una llamada sencilla a la API [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) mediante Python. Esta es la forma más rápida de empezar a experimentar con Amazon Bedrock sin tener que configurar credenciales complejas AWS .

**aviso**  
Las claves de API de larga duración solo se recomiendan para la exploración y el desarrollo de Amazon Bedrock. Para las aplicaciones de producción, utilice [alternativas a las claves de acceso de larga duración](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys), como roles de IAM o credenciales temporales.

Siga estos pasos para crear una clave de API de Amazon Bedrock de larga duración que caduque a los 30 días:

1. Inicie sesión Consola de administración de AWS con una identidad de IAM que tenga permisos para usar la consola Amazon Bedrock. A continuación, abra la consola de Amazon Bedrock en [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. En el panel de navegación izquierdo, seleccione **Claves de API**.

1. En la pestaña **Claves de API de larga duración**, seleccione **Generar claves de API de larga duración**.

1. En la sección **Caducidad de la clave de API**, seleccione **30 días**.

1. Seleccione **Generar**. La clave que genere proporciona permisos para llevar a cabo las principales acciones de Amazon Bedrock, tal y como se define en la [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess)política adjunta.

1. Copie la clave de API generada y almacénela de forma segura. La necesitará para el siguiente paso.
**importante**  
La clave de API solo se muestra una vez. Asegúrese de copiarla y guardarla antes de cerrar el cuadro de diálogo. Recuerde que su clave de API caducará en 30 días. Puede generar una nueva siguiendo los mismos pasos o considerar la posibilidad de utilizar métodos de autenticación más seguros para un uso continuado.

1. Configure la clave de API como una variable de entorno *\$1\$1api-key\$1* sustituyéndola por el valor de clave de API generado y utilícela para generar una respuesta según el método que prefiera:

------
#### [ Python ]

   ```
   import boto3
   import os
   
   # Set the API key as an environment variable
   os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}"
   
   # Create the Bedrock client
   client = boto3.client(
       service_name="bedrock-runtime",
       region_name="us-east-1"
   )
   
   # Define the model and message
   model_id = "us.anthropic.claude-3-5-haiku-20241022-v1:0"
   messages = [{"role": "user", "content": [{"text": "Hello! Can you tell me about Amazon Bedrock?"}]}]
   
   # Make the API call
   response = client.converse(
       modelId=model_id,
       messages=messages,
   )
   
   # Print the response
   print(response['output']['message']['content'][0]['text'])
   ```

------
#### [ HTTP client using Python ]

   ```
   import requests
   
   url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse"
   
   payload = {
       "messages": [
           {
               "role": "user",
               "content": [{"text": "Hello"}]
           }
       ]
   }
   
   headers = {
       "Content-Type": "application/json",
       "Authorization": "Bearer ${api-key}"
   }
   
   response = requests.request("POST", url, json=payload, headers=headers)
   
   print(response.text)
   ```

------
#### [ HTTP request using cURL ]

   ```
   curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer ${api-key}" \
     -d '{
       "messages": [
           {
               "role": "user",
               "content": [{"text": "Hello"}]
           }
       ]
     }'
   ```

------

¡Enhorabuena\$1 Ha generado correctamente una clave de API de Amazon Bedrock y ha realizado su primera llamada de API al servicio de Amazon Bedrock. Tras explorar más acciones de Amazon Bedrock, debería pasar a métodos de autenticación más seguros, como las claves de API de Amazon Bedrock a corto plazo o las credenciales temporales para AWS todo el mundo. Para obtener más información consulte los siguientes recursos:
+ **Explore diferentes modelos**: obtenga información sobre otros modelos fundacionales disponibles en Amazon Bedrock en [Información del modelo fundacional de Amazon Bedrock](foundation-models-reference.md) y cambie el `model_id` en su código para probarlos.
+ **Obtenga información sobre la inferencia de modelos**: obtenga información sobre cómo generar respuestas con la inferencia de modelos consultando los conceptos y las opciones disponibles en Amazon Bedrock en [Envío de solicitudes y generación de respuestas con inferencia de modelos](inference.md).
+ **Planifique la producción con métodos de autenticación más seguros**: lea más detalladamente sobre las claves de API de Amazon Bedrock en el capítulo Creación y sobre cómo crear claves de API de Amazon Bedrock más seguras y a corto plazo. Cuando esté listo para crear aplicaciones de producción, también debería revisar las [alternativas a las claves de acceso a largo plazo](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys) para obtener opciones más seguras que también permitan el acceso a otros AWS servicios.

# Ejecute solicitudes de API de Amazon Bedrock de ejemplo con AWS Command Line Interface
<a name="getting-started-api-ex-cli"></a>

En esta sección, se explica cómo probar algunas operaciones habituales en Amazon Bedrock AWS Command Line Interface 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).
+ Ha instalado y configurado la autenticación para la AWS CLI. Para instalar el AWS CLI, siga los pasos que se indican en [Instalar o actualizar a la versión más reciente del AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). Compruebe que ha configurado sus credenciales para usar la CLI 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.

**Topics**
+ [Enumeración de los modelos fundacionales que ofrece Amazon Bedrock](#getting-started-api-ex-cli-listfm)
+ [Envíe un mensaje de texto a una modelo y genere una respuesta de texto con InvokeModel](#getting-started-api-ex-cli-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-cli-converse)

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

En el siguiente ejemplo, se ejecuta la [ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)operación mediante AWS CLI. `ListFoundationModels`muestra los modelos de base (FMs) que están disponibles en Amazon Bedrock en su región. En un terminal, ejecute el siguiente comando:

```
aws bedrock list-foundation-models
```

Si el comando se ejecuta correctamente, la respuesta devuelve una lista de modelos fundacionales que están disponibles en Amazon Bedrock.

## Envíe un mensaje de texto a una modelo y genere una respuesta de texto con InvokeModel
<a name="getting-started-api-ex-cli-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 mediante AWS CLI. `InvokeModel`permite enviar una solicitud para generar una respuesta modelo. En un terminal, ejecute el siguiente comando:

```
aws bedrock-runtime invoke-model \
--model-id amazon.titan-text-express-v1 \
--body '{"inputText": "Describe the purpose of a \"hello world\" program in one line.", "textGenerationConfig" : {"maxTokenCount": 512, "temperature": 0.5, "topP": 0.9}}' \
--cli-binary-format raw-in-base64-out \
invoke-model-output-text.txt
```

Si el comando se ejecuta correctamente, la respuesta generada por el modelo se escribe en el archivo `invoke-model-output-text.txt`. La respuesta de texto se devuelve en el campo `outputText`, junto con la información correspondiente.

## 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-cli-converse"></a>

En el siguiente ejemplo, [se ejecuta la operación de conversión](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) mediante. AWS CLI`Converse`permite enviar una solicitud para generar una respuesta modelo. 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. En un terminal, ejecute el siguiente comando:

```
aws bedrock-runtime converse \
--model-id amazon.titan-text-express-v1 \
--messages '[{"role": "user", "content": [{"text": "Describe the purpose of a \"hello world\" program in one line."}]}]' \
--inference-config '{"maxTokens": 512, "temperature": 0.5, "topP": 0.9}'
```

Si el comando se ejecuta correctamente, la respuesta generada por el modelo se devuelve en el campo `text`, junto con la información correspondiente.

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

# Ejecute solicitudes de API de Amazon Bedrock de ejemplo con un bloc de notas Amazon SageMaker AI
<a name="getting-started-api-ex-sm"></a>

En esta sección, se explica cómo probar algunas operaciones habituales en Amazon Bedrock con un bloc de notas de Amazon SageMaker AI para comprobar que los permisos de su rol de Amazon Bedrock 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 rol Cuenta de AWS y tiene permisos para acceder a él con los permisos necesarios para Amazon Bedrock. De lo contrario, siga estos pasos en [Inicio rápido](getting-started.md).
+ Realice los siguientes pasos para configurar los permisos de IAM para la SageMaker IA y crear un bloc de notas:

  1. Modifique la [política de confianza](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#term_trust-policy) del rol de Amazon Bedrock configurada en [Inicio rápido](getting-started.md) a través de la [consola](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy), la [CLI](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-cli.html#roles-managingrole_edit-trust-policy-cli) o la [API](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-api.html#roles-managingrole_edit-trust-policy-api). Adjunta la siguiente política de confianza al rol para permitir que los servicios de Amazon Bedrock y SageMaker AI asuman el rol de 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"
             }
         ]
     }
     ```

------

  1. Inicie sesión en el rol de Amazon Bedrock cuya política de confianza acaba de modificar.

  1. Siga los pasos descritos en [Crear una instancia de Amazon SageMaker AI Notebook para ver el tutorial](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-setup-working-env.html) y especifique el ARN del rol de Amazon Bedrock que creó para crear una instancia de Amazon SageMaker AI Notebook.

  1. **Cuando el **estado** de la instancia del bloc de notas sea **InService**, elija la instancia y, a continuación, elija Abrir. JupyterLab**

Después de abrir tu bloc de notas de SageMaker IA, puedes probar los siguientes ejemplos:

**Topics**
+ [Enumeración de los modelos fundacionales que ofrece Amazon Bedrock](#getting-started-api-ex-sm-listfm)
+ [Envío de una petición de texto a un modelo y generación de una respuesta](#getting-started-api-ex-sm-converse)

## Enumeración de los modelos fundacionales que ofrece Amazon Bedrock
<a name="getting-started-api-ex-sm-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 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ío de una petición de texto a un modelo y generación de una respuesta
<a name="getting-started-api-ex-sm-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. `Converse` le permite enviar una petición para generar una respuesta del modelo. Ejecute el siguiente script de SDK para Python para crear un cliente de tiempo de ejecución de Amazon Bedrock y probar la operación [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html):

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