

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.

# Envíe un lote de solicitudes con el OpenAI API Batch
<a name="inference-openai-batch"></a>

Puede ejecutar un trabajo de inferencia en lotes mediante la [API Create batch de OpenAI](https://platform.openai.com/docs/api-reference/batch) con los modelos OpenAI de Amazon Bedrock.

Puede llamar a la API Create batch de OpenAI de las formas siguientes:
+ Realice una solicitud HTTP con un punto de conexión de Tiempo de ejecución de Amazon Bedrock.
+ Use una solicitud SDK de OpenAI con un punto de conexión de Tiempo de ejecución de Amazon Bedrock.

Elija un tema para obtener más información:

**Topics**
+ [Modelos y regiones compatibles con OpenAI API por lotes](#inference-openai-batch-supported)
+ [Requisitos previos para usar la OpenAI API por lotes](#inference-openai-batch-prereq)
+ [Crea un OpenAI trabajo por lotes](#inference-openai-batch-create)
+ [Recupera un OpenAI trabajo por lotes](#inference-openai-batch-retrieve)
+ [Enumeración OpenAI tareas por lotes](#inference-openai-batch-list)
+ [Cancela una OpenAI trabajo por lotes](#inference-openai-batch-cancel)

## Modelos y regiones compatibles con OpenAI API por lotes
<a name="inference-openai-batch-supported"></a>

Puede usar la API OpenAI Create batch con todos los OpenAI modelos compatibles con Amazon Bedrock y en las AWS regiones que admiten estos modelos. Para obtener más información acerca de los modelos y regiones compatibles, consulte [Modelos fundacionales compatibles en Amazon Bedrock](models-supported.md).

## Requisitos previos para usar la OpenAI API por lotes
<a name="inference-openai-batch-prereq"></a>

Para ver los requisitos previos para usar las operaciones de la API Batch de OpenAI, elija la pestaña que corresponda al método que prefiera y siga estos pasos:

------
#### [ OpenAI SDK ]
+ **Autenticación**: el SDK de OpenAI solo admite la autenticación con una clave de API de Amazon Bedrock. Genere una clave de API de Amazon Bedrock para autenticar la solicitud. Para obtener más información sobre las claves de API de Amazon Bedrock y cómo generarlas, consulte la sección de claves de API del capítulo Creación.
+ **Punto final**: busque el punto final que corresponda a la AWS región para usarlo en los [puntos de enlace y las cuotas de Amazon Bedrock Runtime](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt). Si usa un AWS SDK, es posible que solo necesite especificar el código de región y no todo el punto final al configurar el cliente.
+ **Acceso al modelo**: solicite acceso a un modelo de Amazon Bedrock que sea compatible con esta característica. Para obtener más información, consulte [Administre el acceso a los modelos mediante el SDK y la CLI](model-access.md#model-access-modify).
+ **Instalar un SDK de OpenAI**: para obtener más información, consulte [Bibliotecas](https://platform.openai.com/docs/libraries) en la documentación de OpenAI.
+ **Archivo JSONL por lotes cargado en S3**: siga los pasos descritos en [Prepare your batch file](https://platform.openai.com/docs/guides/batch#1-prepare-your-batch-file) en la documentación de OpenAI para preparar el archivo por lotes con el formato correcto. A continuación, cárguelo en un bucket de Amazon S3.
+ **Permisos de IAM**: asegúrese de que dispone de las siguientes identidades de IAM con los permisos adecuados:
  + Una identidad de IAM con la que se autentique puede llevar a cabo operaciones de API relacionadas con la inferencia en lotes. Para obtener más información, consulte [Permisos necesarios para que una identidad de IAM envíe y administre trabajos de inferencia en lotes](batch-inference-permissions.md).
  + El rol de servicio de inferencia en lotes que utilice puede asumir su identidad, invocar el modelo OpenAI que usted usa y tener acceso al archivo JSONL por lotes en S3. Para obtener más información, consulte [Roles de servicio](security-iam-sr.md).

------
#### [ HTTP request ]
+ **Autenticación**: puede autenticarse con sus AWS credenciales o con una clave de API de Amazon Bedrock.

  Configure sus AWS credenciales o genere una clave de API de Amazon Bedrock para autenticar su solicitud.
  + Para obtener más información sobre cómo configurar sus AWS credenciales, consulte [Acceso programático con AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html) credenciales de seguridad.
  + Para obtener más información sobre las claves de API de Amazon Bedrock y cómo generarlas, consulte la sección de claves de API del capítulo Creación.
+ **Punto final**: busque el punto final que corresponda a la AWS región para usarlo en los [puntos de enlace y las cuotas de Amazon Bedrock Runtime](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt). Si usa un AWS SDK, es posible que solo necesite especificar el código de región y no todo el punto final al configurar el cliente.
+ **Acceso al modelo**: solicite acceso a un modelo de Amazon Bedrock que sea compatible con esta característica. Para obtener más información, consulte [Administre el acceso a los modelos mediante el SDK y la CLI](model-access.md#model-access-modify).
+ **Archivo JSONL por lotes cargado en S3**: siga los pasos descritos en [Prepare your batch file](https://platform.openai.com/docs/guides/batch#1-prepare-your-batch-file) en la documentación de OpenAI para preparar el archivo por lotes con el formato correcto. A continuación, cárguelo en un bucket de Amazon S3.
+ **Permisos de IAM**: asegúrese de que dispone de las siguientes identidades de IAM con los permisos adecuados:
  + Una identidad de IAM con la que se autentique puede llevar a cabo operaciones de API relacionadas con la inferencia en lotes. Para obtener más información, consulte [Permisos necesarios para que una identidad de IAM envíe y administre trabajos de inferencia en lotes](batch-inference-permissions.md).
  + El rol de servicio de inferencia en lotes que utilice puede asumir su identidad, invocar el modelo OpenAI que usted usa y tener acceso al archivo JSONL por lotes en S3. Para obtener más información, consulte [Roles de servicio](security-iam-sr.md).

------

## Crea un OpenAI trabajo por lotes
<a name="inference-openai-batch-create"></a>

Para obtener información sobre la API Create chat completion de OpenAI, consulte los siguientes recursos en la documentación de OpenAI:
+ [Create batch](https://platform.openai.com/docs/api-reference/batch/create): detalla tanto la solicitud como la respuesta.
+ [The request output object](https://platform.openai.com/docs/api-reference/batch/request-output): detalla los campos de la salida generada por el trabajo por lotes. Consulte esta documentación cuando interprete los resultados en su bucket de S3.

**Creación de la solicitud**  
Al elaborar la solicitud de inferencia por lotes, ten en cuenta los siguientes Bedrock-specific campos y valores de Amazon:

**Encabezados de solicitudes**
+ X-Amzn-Bedrock-RoleArn (obligatorio): el nombre de recurso de Amazon (ARN) de la función del servicio de inferencia por lotes. Para obtener más información, consulte [Creación de un rol de servicio personalizado para la inferencia en lotes](batch-iam-sr.md)
+ X-Amzn-Bedrock-ModelId (obligatorio): el ID del modelo básico que se va a utilizar en la inferencia. Para obtener más información, consulte [Modelos fundacionales compatibles en Amazon Bedrock](models-supported.md).
+ X-Amzn-Bedrock-OutputEncryptionKeyId (opcional): el ID de una clave KMS que desea usar para cifrar los archivos S3 de salida. Para obtener más información, consulte [Especificar el cifrado del lado del servidor con AWS KMS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html) (). SSE-KMS
+ X-Amzn-Bedrock-Tags (opcional): un diccionario de claves y valores que indican las etiquetas que se deben adjuntar a la salida. Para obtener más información, consulte [Etiquetado de los recursos de Amazon Bedrock](tagging.md).

**Parámetros del cuerpo de la solicitud:**
+ endpoint: debe ser `v1/chat/completions`.
+ input\_file\_id: especifique el URI de S3 del archivo JSONL por lotes.

**Búsqueda de los resultados generados**  
La respuesta de creación incluye un ID de lote. Los resultados y el registro de errores del trabajo de inferencia en lotes se escriben en la carpeta de S3 que contiene el archivo de entrada. Los resultados estarán en una carpeta con el mismo nombre que el ID del lote, como en la siguiente estructura de carpetas:

```
---- {batch_input_folder}
        |---- {batch_input}.jsonl
        |---- {batch_id}
	           |---- {batch_input}.jsonl.out
	           |---- {batch_input}.jsonl.err
```

Para ver ejemplos del uso de la API Create batch de OpenAI con diferentes métodos, seleccione la pestaña que corresponda al método que prefiera y siga los pasos:

------
#### [ OpenAI SDK (Python) ]

Para crear un trabajo por lotes con el SDK de OpenAI, haga lo siguiente:

1. Importe el SDK de OpenAI y configure el cliente con los siguientes campos:
   + `base_url`: añada el punto de conexión de Tiempo de ejecución de Amazon Bedrock delante de `/openai/v1`, como en el siguiente formato:

     ```
     https://{{${bedrock-runtime-endpoint}}}/openai/v1
     ```
   + `api_key`: especifique una clave de API de Amazon Bedrock.
   + `default_headers`: si necesita incluir algún encabezado, puede incluirlo como pares de clave-valor en este objeto. También puede especificar los encabezados en los `extra_headers` cuando realice una llamada a la API específica.

1. Use el método [batches.create()](https://platform.openai.com/docs/api-reference/batch/create) con el cliente.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:
+ api\_key: reemplázala por {{$AWS\_BEARER\_TOKEN\_BEDROCK}} tu clave de API actual.
+ X-Amzn-BedrockRoleArn — {{arn:aws:iam::123456789012:role/BatchServiceRole}} Sustitúyala por la función de servicio de inferencia por lotes real que configuraste.
+ input\_file\_id: {{s3://amzn-s3-demo-bucket/openai-input.jsonl}} sustitúyelo por el URI de S3 real al que cargó el archivo JSONL por lotes.

En el ejemplo, se llama a la API Create batch job de OpenAI en `us-west-2` y se incluye un fragmento de los metadatos.

```
from openai import OpenAI

client = OpenAI(
    base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", 
    api_key="$AWS_BEARER_TOKEN_BEDROCK", # Replace with actual API key
    default_headers={
        "X-Amzn-Bedrock-RoleArn": "arn:aws:iam::123456789012:role/BatchServiceRole" # Replace with actual service role ARN
    }
)

job = client.batches.create(
    input_file_id="s3://amzn-s3-demo-bucket/openai-input.jsonl", # Replace with actual S3 URI
    endpoint="/v1/chat/completions",
    completion_window="24h",
    metadata={
        "description": "test input"
    },
    extra_headers={
        "X-Amzn-Bedrock-ModelId": "openai.gpt-oss-20b-1:0",
    }
)
print(job)
```

------
#### [ HTTP request ]

Para crear una finalización de chat con una solicitud HTTP directa, haga lo siguiente:

1. Utilice el método POST y especifique la URL añadiendo el punto de conexión de Tiempo de ejecución de Amazon Bedrock delante de `/openai/v1/batches`, como en el siguiente formato:

   ```
   {{https://${bedrock-runtime-endpoint}}}/openai/v1/batches
   ```

1. Especifique sus AWS credenciales o una clave de API de Amazon Bedrock en el `Authorization` encabezado.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:
+ Autorización: {{$AWS\_BEARER\_TOKEN\_BEDROCK}} reemplácela por su clave de API actual.
+ X-Amzn-BedrockRoleArn — {{arn:aws:iam::123456789012:role/BatchServiceRole}} Sustitúyala por la función de servicio de inferencia por lotes real que configuraste.
+ input\_file\_id: {{s3://amzn-s3-demo-bucket/openai-input.jsonl}} sustitúyelo por el URI de S3 real al que cargó el archivo JSONL por lotes.

En el siguiente ejemplo se llama a la API Create batch job en `us-west-2` y se incluye un fragmento de los metadatos:

```
curl -X POST 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches' \
    -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK' \  
    -H 'Content-Type: application/json' \
    -H 'X-Amzn-Bedrock-ModelId: openai.gpt-oss-20b-1:0' \
    -H 'X-Amzn-Bedrock-RoleArn: arn:aws:iam::123456789012:role/BatchServiceRole' \  
    -d '{    
    "input_file_id": "s3://amzn-s3-demo-bucket/openai-input.jsonl",    
    "endpoint": "/v1/chat/completions",    
    "completion_window": "24h",
    "metadata": {"description": "test input"}  
}'
```

------

## Recupera un OpenAI trabajo por lotes
<a name="inference-openai-batch-retrieve"></a>

Para obtener más información sobre la solicitud y la respuesta de la API Retrieve batch de OpenAI, consulte [Retrieve batch](https://platform.openai.com/docs/api-reference/batch/retrieve).

Al realizar la solicitud, especifique el ID del trabajo por lotes del que desea obtener información. La respuesta devuelve información sobre un trabajo por lotes, incluidos los nombres de los archivos de salida y error, que puede buscar en los buckets de S3.

Para ver ejemplos del uso de la API Retrieve batch de OpenAI con diferentes métodos, seleccione la pestaña correspondiente al método que prefiera y siga los pasos:

------
#### [ OpenAI SDK (Python) ]

Para recuperar un trabajo por lotes con el SDK de OpenAI, haga lo siguiente:

1. Importe el SDK de OpenAI y configure el cliente con los siguientes campos:
   + `base_url`: añada el punto de conexión de Tiempo de ejecución de Amazon Bedrock delante de `/openai/v1`, como en el siguiente formato:

     ```
     https://{{${bedrock-runtime-endpoint}}}/openai/v1
     ```
   + `api_key`: especifique una clave de API de Amazon Bedrock.
   + `default_headers`: si necesita incluir algún encabezado, puede incluirlo como pares de clave-valor en este objeto. También puede especificar los encabezados en los `extra_headers` cuando realice una llamada a la API específica.

1. Use el método [batches.retrieve()](https://platform.openai.com/docs/api-reference/batch/create) con el cliente y especifique el ID del lote del que quiere recuperar la información.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:
+ api\_key: reemplácela por {{$AWS\_BEARER\_TOKEN\_BEDROCK}} su clave de API actual.
+ batch\_id: reemplázala por tu clave de API {{$AWS\_BEARER\_TOKEN\_BEDROCK}} actual.

En el ejemplo, se llama a la OpenAI API Retrieve Batch Job `us-west-2` en un trabajo por lotes cuyo ID es. {{batch\_abc123}}

```
from openai import OpenAI

client = OpenAI(
    base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", 
    api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key
)

job = client.batches.retrieve(batch_id="batch_abc123") # Replace with actual ID

print(job)
```

------
#### [ HTTP request ]

Para recuperar un trabajo por lotes con una solicitud HTTP directa, haga lo siguiente:

1. Utilice el método GET y especifique la URL añadiendo el prefijo del punto de conexión de Tiempo de ejecución de Amazon Bedrock delante de `/openai/v1/batches/{{${batch_id}}}`, como en el siguiente formato:

   ```
   {{https://${bedrock-runtime-endpoint}}}/openai/v1/batches/{{batch_abc123}}
   ```

1. Especifique sus AWS credenciales o una clave de API de Amazon Bedrock en el `Authorization` encabezado.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:
+ Autorización: {{$AWS\_BEARER\_TOKEN\_BEDROCK}} reemplácela por su clave de API actual.
+ batch\_abc123: en la ruta, sustituya este valor por el ID real de su trabajo por lotes.

En el siguiente ejemplo, se llama OpenAI a la API Retrieve batch `us-west-2` en un trabajo por lotes cuyo ID es{{batch\_abc123}}.

```
curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches/batch_abc123' \
    -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'
```

------

## Enumeración OpenAI tareas por lotes
<a name="inference-openai-batch-list"></a>

Para obtener más información sobre la solicitud y la respuesta de la API List batch de OpenAI, consulte [List batch](https://platform.openai.com/docs/api-reference/batch/list). La respuesta devuelve una matriz de información sobre sus trabajos por lotes.

Al realizar la solicitud, puede incluir parámetros de consulta para filtrar los resultados. La respuesta devuelve información sobre un trabajo por lotes, incluidos los nombres de los archivos de salida y error, que puede buscar en los buckets de S3.

Para ver ejemplos del uso de la API List batches de OpenAI con diferentes métodos, seleccione la pestaña correspondiente al método que prefiera y siga los pasos:

------
#### [ OpenAI SDK (Python) ]

Para mostrar los trabajos por lotes con el SDK de OpenAI, haga lo siguiente:

1. Importe el SDK de OpenAI y configure el cliente con los siguientes campos:
   + `base_url`: añada el punto de conexión de Tiempo de ejecución de Amazon Bedrock delante de `/openai/v1`, como en el siguiente formato:

     ```
     https://{{${bedrock-runtime-endpoint}}}/openai/v1
     ```
   + `api_key`: especifique una clave de API de Amazon Bedrock.
   + `default_headers`: si necesita incluir algún encabezado, puede incluirlo como pares de clave-valor en este objeto. También puede especificar los encabezados en los `extra_headers` cuando realice una llamada a la API específica.

1. Use el método [batches.list()](https://platform.openai.com/docs/api-reference/batch/list) con el cliente. Puede incluir los siguientes parámetros opcionales:

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:
+ api\_key: reemplázala por {{$AWS\_BEARER\_TOKEN\_BEDROCK}} tu clave de API actual.

En el ejemplo, se llama a la API List batch jobs de OpenAI en `us-west-2` y se especifica un límite de devolución de dos resultados.

```
from openai import OpenAI

client = OpenAI(
    base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", 
    api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key
)

job = client.batches.list(limit=2)

print(job)
```

------
#### [ HTTP request ]

Para mostrar los trabajos por lotes con una solicitud HTTP directa, haga lo siguiente:

1. Utilice el método GET y especifique la URL añadiendo el prefijo del punto de conexión de Tiempo de ejecución de Amazon Bedrock delante de `/openai/v1/batches`, como en el siguiente formato:

   ```
   {{https://${bedrock-runtime-endpoint}}}/openai/v1/batches
   ```

   Puede incluir cualquiera de los parámetros opcionales.

1. Especifique sus AWS credenciales o una clave de API de Amazon Bedrock en el `Authorization` encabezado.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:
+ Autorización: {{$AWS\_BEARER\_TOKEN\_BEDROCK}} reemplácela por su clave de API actual.

En el siguiente ejemplo, se llama a la API List batches de OpenAI en `us-west-2` y se especifica un límite de devolución de dos resultados.

```
curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches?limit=2' \
    -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK' \
```

------

## Cancela una OpenAI trabajo por lotes
<a name="inference-openai-batch-cancel"></a>

Para obtener más información sobre la solicitud y la respuesta de la API Cancel batch de OpenAI, consulte [Cancel batch](https://platform.openai.com/docs/api-reference/batch/cancel). La respuesta devuelve información sobre el trabajo por lotes cancelado.

Al realizar la solicitud, especifique el ID del trabajo por lotes que desea cancelar.

Para ver ejemplos del uso de la API Cancel batch de OpenAI con diferentes métodos, seleccione la pestaña correspondiente al método que prefiera y siga los pasos:

------
#### [ OpenAI SDK (Python) ]

Para cancelar un trabajo por lotes con el SDK de OpenAI, haga lo siguiente:

1. Importe el SDK de OpenAI y configure el cliente con los siguientes campos:
   + `base_url`: añada el punto de conexión de Tiempo de ejecución de Amazon Bedrock delante de `/openai/v1`, como en el siguiente formato:

     ```
     https://{{${bedrock-runtime-endpoint}}}/openai/v1
     ```
   + `api_key`: especifique una clave de API de Amazon Bedrock.
   + `default_headers`: si necesita incluir algún encabezado, puede incluirlo como pares de clave-valor en este objeto. También puede especificar los encabezados en los `extra_headers` cuando realice una llamada a la API específica.

1. Use el método [batches.cancel()](https://platform.openai.com/docs/api-reference/batch/cancel) con el cliente y especifique el ID del lote del que quiere recuperar la información.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:
+ api\_key: reemplácela por {{$AWS\_BEARER\_TOKEN\_BEDROCK}} su clave de API actual.
+ batch\_id: reemplázala por tu clave de API {{$AWS\_BEARER\_TOKEN\_BEDROCK}} actual.

El ejemplo llama a la API OpenAI Cancelar trabajos por lotes `us-west-2` en un trabajo por lotes cuyo ID es. {{batch\_abc123}}

```
from openai import OpenAI

client = OpenAI(
    base_url="https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1", 
    api_key="$AWS_BEARER_TOKEN_BEDROCK" # Replace with actual API key
)

job = client.batches.cancel(batch_id="batch_abc123") # Replace with actual ID

print(job)
```

------
#### [ HTTP request ]

Para cancelar los trabajos por lotes con una solicitud HTTP directa, haga lo siguiente:

1. Utilice el método POST y especifique la URL añadiendo el punto de conexión de Tiempo de ejecución de Amazon Bedrock delante de `/openai/v1/batches/{{${batch_id}}}/cancel`, como en el siguiente formato:

   ```
   {{https://${bedrock-runtime-endpoint}}}/openai/v1/batches/{{batch_abc123}}/cancel
   ```

1. Especifique sus AWS credenciales o una clave de API de Amazon Bedrock en el `Authorization` encabezado.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:
+ Autorización: {{$AWS\_BEARER\_TOKEN\_BEDROCK}} reemplácela por su clave de API actual.
+ batch\_abc123: en la ruta, sustituya este valor por el ID real de su trabajo por lotes.

En el siguiente ejemplo, se llama a la API de OpenAI cancelación de lotes `us-west-2` en un trabajo por lotes cuyo ID es{{batch\_abc123}}.

```
curl -X GET 'https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/batches/batch_abc123/cancel' \
    -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'
```

------