Enviar um lote de prompts com a API Batch da OpenAI - Amazon Bedrock

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

Enviar um lote de prompts com a API Batch da OpenAI

É possível executar um trabalho de inferência em lote usando a API Create batch da OpenAI 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:

Modelos e regiões compatíveis para a API Batch da OpenAI

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.

Pré-requisitos para usar a API Batch da OpenAI

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

  • Instalar um SDK da OpenAI: para ter mais informações, consulte Libraries na documentação da OpenAI.

  • Arquivo JSONL em lote carregado no S3: siga as etapas em 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:

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.

  • Endpoint — Encontre o endpoint que corresponde à AWS região a ser usada nos endpoints e cotas do Amazon Bedrock Runtime. 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.

  • Arquivo JSONL em lote carregado no S3: siga as etapas em 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:

Criar um trabalho em lote da OpenAI

Para ver detalhes da API Create batch da OpenAI, consulte os seguintes recursos na documentação da OpenAI:

  • Create batch: detalha a solicitação e a resposta.

  • The request output object: 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 formular a solicitação de inferência em lote, observe os seguintes campos e valores específicos do Amazon Bedrock:

Cabeçalhos de solicitação
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.

  2. Use o método batches.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
  2. 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"} }'

Recuperar um trabalho em lote da OpenAI

Para ver detalhes da solicitação e da resposta da API Retrieve batch da OpenAI, consulte Retrieve batch.

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.

  2. Use o método batches.retrieve() 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
  2. 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'

Listar trabalhos em lote da OpenAI

Para ver detalhes da solicitação e da resposta da API List batches da OpenAI, consulte List batches. 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.

  2. Use o método batches.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.retrieve(batch_id="batch_abc123") # Replace with actual ID 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.

  2. 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/batch_abc123' \ -H 'Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK'

Cancelar um trabalho em lote da OpenAI

Para ver detalhes da solicitação e da resposta da API Cancel batch da OpenAI, consulte Cancel batch. 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.

  2. Use o método batches.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
  2. 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'