Envío de un lote de peticiones con la API Batch de OpenAI - Amazon Bedrock

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ío de un lote de peticiones con la API Batch de OpenAI

Puede ejecutar un trabajo de inferencia en lotes mediante la API Create batch de OpenAI 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:

Regiones y modelos compatibles con la API Batch de OpenAI

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

Requisitos previos para usar la API Batch de OpenAI

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
HTTP request

Creación de un trabajo por lotes de OpenAI

Para obtener información sobre la API Create chat completion de OpenAI, consulte los siguientes recursos en la documentación de OpenAI:

  • Create batch: detalla tanto la solicitud como la respuesta.

  • The request output object: 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 crear la solicitud de inferencia en lotes, tenga en cuenta los siguientes campos y valores específicos de Amazon Bedrock:

Encabezados de solicitudes
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.

  2. Use el método batches.create() con el cliente.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:

  • api_key: sustituya $AWS_BEARER_TOKEN_BEDROCK por su clave de API actual.

  • X-Amzn-BedrockRoleArn: sustituya arn:aws:iam::123456789012:role/BatchServiceRole por el rol de servicio de inferencia en lotes real que ha configurado.

  • input_file_id: sustituya s3://amzn-s3-demo-bucket/openai-input.jsonl por el URI de S3 real en el 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
  2. Especifique sus credenciales de AWS o una clave de API de Amazon Bedrock en el encabezado Authorization.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:

  • Autorización: sustituya $AWS_BEARER_TOKEN_BEDROCK por su clave de API actual.

  • X-Amzn-BedrockRoleArn: sustituya arn:aws:iam::123456789012:role/BatchServiceRole por el rol de servicio de inferencia en lotes real que ha configurado.

  • input_file_id: sustituya s3://amzn-s3-demo-bucket/openai-input.jsonl por el URI de S3 real en el 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"} }'

Recuperación de un trabajo por lotes de OpenAI

Para obtener más información sobre la solicitud y la respuesta de la API Retrieve batch de OpenAI, consulte Retrieve batch.

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.

  2. Use el método batches.retrieve() 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: sustituya $AWS_BEARER_TOKEN_BEDROCK por su clave de API actual.

  • batch_id: sustituya $AWS_BEARER_TOKEN_BEDROCK por su clave de API actual.

En el ejemplo, se llama a la API Retrieve batch job de OpenAI en 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
  2. Especifique sus credenciales de AWS o una clave de API de Amazon Bedrock en el encabezado Authorization.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:

  • Autorización: sustituya $AWS_BEARER_TOKEN_BEDROCK 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 Retrieve batch de OpenAI en 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 de trabajos por lotes de OpenAI

Para obtener más información sobre la solicitud y la respuesta de la API List batch de OpenAI, consulte List batch. 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.

  2. Use el método batches.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: sustituya $AWS_BEARER_TOKEN_BEDROCK por su 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.retrieve(batch_id="batch_abc123") # Replace with actual ID 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.

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

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:

  • Autorización: sustituya $AWS_BEARER_TOKEN_BEDROCK 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/batch_abc123' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'

Cancelación de un trabajo por lotes de OpenAI

Para obtener más información sobre la solicitud y la respuesta de la API Cancel batch de OpenAI, consulte Cancel batch. 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.

  2. Use el método batches.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: sustituya $AWS_BEARER_TOKEN_BEDROCK por su clave de API actual.

  • batch_id: sustituya $AWS_BEARER_TOKEN_BEDROCK por su clave de API actual.

En el ejemplo, se llama a la API Cancel batch de OpenAI en 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
  2. Especifique sus credenciales de AWS o una clave de API de Amazon Bedrock en el encabezado Authorization.

Antes de ejecutar el siguiente ejemplo, reemplace los marcadores de posición en los siguientes campos:

  • Autorización: sustituya $AWS_BEARER_TOKEN_BEDROCK 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 Cancel batch de OpenAI en 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'