

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Envie um lote de solicitações com o OpenAI API Batch
<a name="inference-openai-batch"></a>

É possível executar um trabalho de inferência em lote usando a [API Create batch da OpenAI](https://platform.openai.com/docs/api-reference/batch) com modelos da OpenAI do Amazon Bedrock.

Você pode chamar a API Create batch da OpenAI das seguintes maneiras:
+ Faça uma solicitação HTTP com um endpoint do Amazon Bedrock Runtime.
+ Use uma solicitação de SDK da OpenAI com um endpoint do Amazon Bedrock Runtime.

Escolha um tópico para saber mais:

**Topics**
+ [Modelos e regiões compatíveis com o OpenAI API em lote](#inference-openai-batch-supported)
+ [Pré-requisitos para usar o OpenAI API em lote](#inference-openai-batch-prereq)
+ [Crie um OpenAI trabalho em lote](#inference-openai-batch-create)
+ [Recupere um OpenAI trabalho em lote](#inference-openai-batch-retrieve)
+ [Lista OpenAI trabalhos em lote](#inference-openai-batch-list)
+ [Cancelar um OpenAI trabalho em lote](#inference-openai-batch-cancel)

## Modelos e regiões compatíveis com o OpenAI API em lote
<a name="inference-openai-batch-supported"></a>

Você pode usar a API OpenAI Create batch com todos os OpenAI modelos compatíveis com o Amazon Bedrock e nas AWS regiões que oferecem suporte a esses modelos. Para ter mais informações sobre modelos e regiões compatíveis, consulte [Modelos de base compatíveis no Amazon Bedrock](models-supported.md).

## Pré-requisitos para usar o OpenAI API em lote
<a name="inference-openai-batch-prereq"></a>

Para ver os pré-requisitos para usar as operações da API Batch da OpenAI, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ OpenAI SDK ]
+ **Autenticação**: o SDK da OpenAI só permite autenticação com uma chave de API do Amazon Bedrock. Gere uma chave de API do Amazon Bedrock para autenticar sua solicitação. Para saber mais sobre as chaves de API do Amazon Bedrock e como gerá-las, consulte a seção Chaves de API no capítulo Build.
+ **Endpoint** — Encontre o endpoint que corresponde à AWS região a ser usada nos [endpoints e cotas do Amazon Bedrock Runtime](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt). Se você usa um AWS SDK, talvez precise especificar apenas o código da região e não o endpoint inteiro ao configurar o cliente.
+ **Acesso ao modelo**: solicite acesso a um modelo do Amazon Bedrock que comporte esse recurso. Para obter mais informações, consulte [Gerencie o acesso ao modelo usando SDK e CLI](model-access.md#model-access-modify).
+ **Instalar um SDK da OpenAI**: para ter mais informações, consulte [Libraries](https://platform.openai.com/docs/libraries) na documentação da OpenAI.
+ **Arquivo JSONL em lote carregado no S3**: siga as etapas em [Prepare your batch file](https://platform.openai.com/docs/guides/batch#1-prepare-your-batch-file) na documentação da OpenAI para preparar seu arquivo em lote com o formato correto. Em seguida, faça upload dele em um bucket do Amazon S3.
+ **Permissões do IAM**: verifique se você tem as seguintes identidades do IAM com as permissões adequadas:
  + Uma identidade do IAM com a qual você se autentica pode realizar operações de API relacionadas à inferência em lote. Para obter mais informações, consulte [Permissões necessária para uma identidade do IAM enviar e gerenciar trabalhos de inferência em lote](batch-inference-permissions.md).
  + O perfil de serviço de inferência em lote usado por você pode assumir sua identidade, invocar o modelo da OpenAI que você usa e ter acesso ao seu arquivo JSONL em lote no S3. Para obter mais informações, consulte [Perfis de serviço](security-iam-sr.md).

------
#### [ HTTP request ]
+ **Autenticação** — Você pode se autenticar com suas AWS credenciais ou com uma chave de API Amazon Bedrock.

  Configure suas AWS credenciais ou gere uma chave de API Amazon Bedrock para autenticar sua solicitação.
  + Para saber mais sobre como configurar suas AWS credenciais, consulte [Acesso programático com credenciais de AWS segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html).
  + Para saber mais sobre as chaves de API do Amazon Bedrock e como gerá-las, consulte a seção Chaves de API no capítulo Build.
+ **Endpoint** — Encontre o endpoint que corresponde à AWS região a ser usada nos [endpoints e cotas do Amazon Bedrock Runtime](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt). Se você usa um AWS SDK, talvez precise especificar apenas o código da região e não o endpoint inteiro ao configurar o cliente.
+ **Acesso ao modelo**: solicite acesso a um modelo do Amazon Bedrock que comporte esse recurso. Para obter mais informações, consulte [Gerencie o acesso ao modelo usando SDK e CLI](model-access.md#model-access-modify).
+ **Arquivo JSONL em lote carregado no S3**: siga as etapas em [Prepare your batch file](https://platform.openai.com/docs/guides/batch#1-prepare-your-batch-file) na documentação da OpenAI para preparar seu arquivo em lote com o formato correto. Em seguida, faça upload dele em um bucket do Amazon S3.
+ **Permissões do IAM**: verifique se você tem as seguintes identidades do IAM com as permissões adequadas:
  + Uma identidade do IAM com a qual você se autentica pode realizar operações de API relacionadas à inferência em lote. Para obter mais informações, consulte [Permissões necessária para uma identidade do IAM enviar e gerenciar trabalhos de inferência em lote](batch-inference-permissions.md).
  + O perfil de serviço de inferência em lote usado por você pode assumir sua identidade, invocar o modelo da OpenAI que você usa e ter acesso ao seu arquivo JSONL em lote no S3. Para obter mais informações, consulte [Perfis de serviço](security-iam-sr.md).

------

## Crie um OpenAI trabalho em lote
<a name="inference-openai-batch-create"></a>

Para ver detalhes da API Create batch da OpenAI, consulte os seguintes recursos na documentação da OpenAI:
+ [Create batch](https://platform.openai.com/docs/api-reference/batch/create): detalha a solicitação e a resposta.
+ [The request output object](https://platform.openai.com/docs/api-reference/batch/request-output): detalha os campos da saída gerada do trabalho em lote. Consulte essa documentação ao interpretar os resultados em seu bucket do S3.

**Formular a solicitação**  
Ao formar a solicitação de inferência em lote, observe os seguintes Bedrock-specific campos e valores da Amazon:

**Cabeçalhos de solicitação**
+ X-Amzn-Bedrock-RoleArn (obrigatório) — O Amazon Resource Name (ARN) da função do serviço de inferência em lote. Para obter mais informações, consulte [Criar um perfil de serviço personalizado de inferência em lote](batch-iam-sr.md).
+ X-Amzn-Bedrock-ModelId (obrigatório) — O ID do modelo básico a ser usado na inferência. Para obter mais informações, consulte [Modelos de base compatíveis no Amazon Bedrock](models-supported.md).
+ X-Amzn-Bedrock-OutputEncryptionKeyId (opcional) — O ID de uma chave KMS que você deseja usar para criptografar os arquivos S3 de saída. Para obter mais informações, consulte [Especificação da criptografia do lado do servidor com (](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specifying-kms-encryption.html)). AWS KMS SSE-KMS
+ X-Amzn-Bedrock-Tags (opcional) — Um dicionário de chaves e valores que indicam tags a serem anexadas à saída. Para obter mais informações, consulte [Marcação de recursos do Amazon Bedrock](tagging.md).

**Parâmetros do corpo da solicitação:**
+ endpoint: deve ser `v1/chat/completions`.
+ input\_file\_id: especifique o URI do S3 do arquivo JSONL em lote.

**Encontrar os resultados gerados**  
A resposta da criação inclui um ID de lote. Os resultados e o registro em log de erros do trabalho de inferência em lote são gravados na pasta do S3 que contém o arquivo de entrada. Os resultados estarão em uma pasta com o mesmo nome do ID do lote, como na estrutura de pasta a seguir:

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

Para ver exemplos de uso da API Create batch da OpenAI com métodos diferentes, escolha a guia referente ao método de sua preferência e siga as etapas:

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

Para criar um trabalho em lote com o SDK da OpenAI, faça o seguinte:

1. Importe o SDK da OpenAI e configure o cliente com os seguintes campos:
   + `base_url`: prefixe o endpoint do Amazon Bedrock Runtime como `/openai/v1`, conforme o seguinte formato:

     ```
     https://{{${bedrock-runtime-endpoint}}}/openai/v1
     ```
   + `api_key`: especifique uma chave de API do Amazon Bedrock.
   + `default_headers`: se precisar incluir algum cabeçalho, você pode incluí-lo como pares de chave-valor nesse objeto. Ou você pode especificar cabeçalhos em `extra_headers` ao fazer uma chamada de API específica.

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

Antes de executar o exemplo a seguir, substitua os espaços reservados nos campos a seguir:
+ api\_key — Substitua pela sua chave {{$AWS\_BEARER\_TOKEN\_BEDROCK}} de API real.
+ X-Amzn-BedrockRoleArn — {{arn:aws:iam::123456789012:role/BatchServiceRole}} Substitua pela função real do serviço de inferência em lote que você configurou.
+ input\_file\_id — {{s3://amzn-s3-demo-bucket/openai-input.jsonl}} Substitua pelo URI real do S3 para o qual você carregou seu arquivo JSONL em lote.

O exemplo chama a API OpenAI Create batch job na `us-west-2` e inclui uma parte dos metadados.

```
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 criar um preenchimento de chat com uma solicitação HTTP, faça o seguinte:

1. Use o método POST e o URL prefixando o endpoint do Amazon Bedrock Runtime como `/openai/v1/batches`, conforme o seguinte formato:

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

1. Especifique suas AWS credenciais ou uma chave de API do Amazon Bedrock no cabeçalho. `Authorization`

Antes de executar o exemplo abaixo, substitua os espaços reservados nos seguintes campos:
+ Autorização — {{$AWS\_BEARER\_TOKEN\_BEDROCK}} Substitua pela sua chave de API real.
+ X-Amzn-BedrockRoleArn — {{arn:aws:iam::123456789012:role/BatchServiceRole}} Substitua pela função real do serviço de inferência em lote que você configurou.
+ input\_file\_id — {{s3://amzn-s3-demo-bucket/openai-input.jsonl}} Substitua pelo URI real do S3 para o qual você carregou seu arquivo JSONL em lote.

O exemplo a seguir chama a API Create chat completion na `us-west-2` e inclui uma parte dos metadados:

```
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"}  
}'
```

------

## Recupere um OpenAI trabalho em lote
<a name="inference-openai-batch-retrieve"></a>

Para ver detalhes da solicitação e da resposta da API Retrieve batch da OpenAI, consulte [Retrieve batch](https://platform.openai.com/docs/api-reference/batch/retrieve).

Ao fazer a solicitação, você especifica o ID do trabalho em lote para o qual deseja obter informações. A resposta exibe informações sobre um trabalho em lote, como o nome dos arquivos de saída e de erro, que podem ser pesquisados nos buckets do S3.

Para ver exemplos de uso da API Retrieve batch da OpenAI com métodos diferentes, escolha a guia correspondente ao método de sua preferência e siga as etapas:

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

Para recuperar um trabalho em lote com o SDK da OpenAI, faça o seguinte:

1. Importe o SDK da OpenAI e configure o cliente com os seguintes campos:
   + `base_url`: prefixe o endpoint do Amazon Bedrock Runtime como `/openai/v1`, conforme o seguinte formato:

     ```
     https://{{${bedrock-runtime-endpoint}}}/openai/v1
     ```
   + `api_key`: especifique uma chave de API do Amazon Bedrock.
   + `default_headers`: se precisar incluir algum cabeçalho, você pode incluí-lo como pares de chave-valor nesse objeto. Ou você pode especificar cabeçalhos em `extra_headers` ao fazer uma chamada de API específica.

1. Use o método [batches.retrieve()](https://platform.openai.com/docs/api-reference/batch/create) com o cliente e especifique o ID do lote para o qual as informações serão recuperadas.

Antes de executar o exemplo a seguir, substitua os espaços reservados nos campos a seguir:
+ api\_key — Substitua pela sua chave {{$AWS\_BEARER\_TOKEN\_BEDROCK}} de API real.
+ batch\_id — Substitua pela sua {{$AWS\_BEARER\_TOKEN\_BEDROCK}} chave de API real.

O exemplo chama a API OpenAI Retrieve batch job `us-west-2` em um trabalho em lote cujo ID é{{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 um trabalho em lote com uma solicitação HTTP direta, faça o seguinte:

1. Use o método GET e especifique a URL prefixando o endpoint do Amazon Bedrock Runtime como `/openai/v1/batches/{{${batch_id}}}`, conforme o seguinte formato:

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

1. Especifique suas AWS credenciais ou uma chave de API do Amazon Bedrock no cabeçalho. `Authorization`

Antes de executar o exemplo abaixo, substitua os espaços reservados nos seguintes campos:
+ Autorização — {{$AWS\_BEARER\_TOKEN\_BEDROCK}} Substitua pela sua chave de API real.
+ batch\_abc123: no caminho, substitua esse valor pelo ID real do trabalho em lote.

O exemplo a seguir chama a API OpenAI Retrieve batch em um trabalho `us-west-2` em lotes cujo ID é{{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'
```

------

## Lista OpenAI trabalhos em lote
<a name="inference-openai-batch-list"></a>

Para ver detalhes da solicitação e da resposta da API List batches da OpenAI, consulte [List batches](https://platform.openai.com/docs/api-reference/batch/list). A resposta exibe uma série de informações sobre seus trabalhos em lote.

Ao fazer a solicitação, você pode incluir parâmetros de consulta para filtrar os resultados. A resposta exibe informações sobre um trabalho em lote, como o nome dos arquivos de saída e de erro, que podem ser pesquisados nos buckets do S3.

Para ver exemplos de uso da API List batches da OpenAI com métodos diferentes, escolha a guia correspondente ao método de sua preferência e siga as etapas:

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

Para listar trabalhos em lote com o SDK da OpenAI, faça o seguinte:

1. Importe o SDK da OpenAI e configure o cliente com os seguintes campos:
   + `base_url`: prefixe o endpoint do Amazon Bedrock Runtime como `/openai/v1`, conforme o seguinte formato:

     ```
     https://{{${bedrock-runtime-endpoint}}}/openai/v1
     ```
   + `api_key`: especifique uma chave de API do Amazon Bedrock.
   + `default_headers`: se precisar incluir algum cabeçalho, você pode incluí-lo como pares de chave-valor nesse objeto. Ou você pode especificar cabeçalhos em `extra_headers` ao fazer uma chamada de API específica.

1. Use o método [batches.list()](https://platform.openai.com/docs/api-reference/batch/list) com o cliente. É possível incluir qualquer um dos parâmetros opcionais.

Antes de executar o exemplo a seguir, substitua os espaços reservados nos campos a seguir:
+ api\_key — Substitua pela sua chave {{$AWS\_BEARER\_TOKEN\_BEDROCK}} de API real.

O exemplo chama a API List batch da OpenAI na `us-west-2` e especifica o limite de dois resultados a serem exibidos.

```
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 listar trabalhos em lote com uma solicitação HTTP direta, faça o seguinte:

1. Use o método GET e especifique a URL prefixando o endpoint do Amazon Bedrock Runtime como `/openai/v1/batches`, conforme o seguinte formato:

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

   Você pode incluir qualquer um dos parâmetros de consulta opcionais.

1. Especifique suas AWS credenciais ou uma chave de API do Amazon Bedrock no cabeçalho. `Authorization`

Antes de executar o exemplo abaixo, substitua os espaços reservados nos seguintes campos:
+ Autorização — {{$AWS\_BEARER\_TOKEN\_BEDROCK}} Substitua pela sua chave de API real.

O exemplo a seguir chama a API List batch da OpenAI na `us-west-2` e especifica o limite de dois resultados a serem exibidos.

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

------

## Cancelar um OpenAI trabalho em lote
<a name="inference-openai-batch-cancel"></a>

Para ver detalhes da solicitação e da resposta da API Cancel batch da OpenAI, consulte [Cancel batch](https://platform.openai.com/docs/api-reference/batch/cancel). A resposta exibe informações sobre o trabalho em lote cancelado.

Ao fazer a solicitação, você especifica o ID do trabalho em lote que deseja cancelar.

Para ver exemplos de uso da API Cancel batch da OpenAI com métodos diferentes, escolha a guia correspondente ao método de sua preferência e siga as etapas:

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

Para cancelar um trabalho em lote com o SDK da OpenAI, faça o seguinte:

1. Importe o SDK da OpenAI e configure o cliente com os seguintes campos:
   + `base_url`: prefixe o endpoint do Amazon Bedrock Runtime como `/openai/v1`, conforme o seguinte formato:

     ```
     https://{{${bedrock-runtime-endpoint}}}/openai/v1
     ```
   + `api_key`: especifique uma chave de API do Amazon Bedrock.
   + `default_headers`: se precisar incluir algum cabeçalho, você pode incluí-lo como pares de chave-valor nesse objeto. Ou você pode especificar cabeçalhos em `extra_headers` ao fazer uma chamada de API específica.

1. Use o método [batches.cancel()](https://platform.openai.com/docs/api-reference/batch/cancel) com o cliente e especifique o ID do lote para o qual as informações serão recuperadas.

Antes de executar o exemplo a seguir, substitua os espaços reservados nos campos a seguir:
+ api\_key — Substitua pela sua chave {{$AWS\_BEARER\_TOKEN\_BEDROCK}} de API real.
+ batch\_id — Substitua pela sua {{$AWS\_BEARER\_TOKEN\_BEDROCK}} chave de API real.

O exemplo chama a API de OpenAI cancelamento de trabalhos em lotes `us-west-2` em um trabalho em lotes cujo ID é{{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 um trabalho em lote com uma solicitação HTTP direta, faça o seguinte:

1. Use o método POST e o URL prefixando o endpoint do Amazon Bedrock Runtime como `/openai/v1/batches/{{${batch_id}}}/cancel`, conforme o seguinte formato:

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

1. Especifique suas AWS credenciais ou uma chave de API do Amazon Bedrock no cabeçalho. `Authorization`

Antes de executar o exemplo abaixo, substitua os espaços reservados nos seguintes campos:
+ Autorização — {{$AWS\_BEARER\_TOKEN\_BEDROCK}} Substitua pela sua chave de API real.
+ batch\_abc123: no caminho, substitua esse valor pelo ID real do trabalho em lote.

O exemplo a seguir chama a API OpenAI Cancel batch `us-west-2` em um trabalho em lotes cujo ID é{{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'
```

------