

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

# OpenAI Modelos da
<a name="model-parameters-openai"></a>

A OpenAI oferece os seguintes modelos de peso aberto:
+ [https://huggingface.co/openai/gpt-oss-20b](https://huggingface.co/openai/gpt-oss-20b): um modelo menor otimizado para menor latência e casos de uso locais ou especializados.
+ [https://huggingface.co/openai/gpt-oss-120b](https://huggingface.co/openai/gpt-oss-120b): um modelo maior otimizado para casos de uso de produção e uso geral ou de alto raciocínio.

A seguinte tabela a seguir resume informações sobre os modelos:


| Informações | gpt-oss-20b | gpt-oss-120b | 
| --- | --- | --- | 
| Data de lançamento | 5 de agosto de 2025 | 5 de agosto de 2025 | 
| ID do modelo | openai.gpt-oss-20b-1:0 | openai.gpt-oss-120b-1:0 | 
| ID do produto | N/A | N/A | 
| Modalidades de entrada aceitas | Texto | Texto | 
| Modalidades de saída aceitas | Texto | Texto | 
| Janela de contexto | 128.000 | 128.000 | 

Os modelos da OpenAI são compatíveis com os seguintes recursos:
+ [Invocação de modelos](inference.md) com as seguintes operações:
  + [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)
  + [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html)
  + [API Chat Completions da OpenAI](inference-chat-completions.md)
+ [Inferência em lote](batch-inference.md) com [CreateModelInvocationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelInvocationJob.html).
+ Aplicação de [barreiras de proteção](guardrails.md) por meio do uso de cabeçalhos nas operações de invocação de modelo.

**Topics**
+ [OpenAI corpo da solicitação](#model-parameters-openai-request)
+ [OpenAI corpo de resposta](#model-parameters-openai-response)
+ [Exemplo de uso de OpenAI Modelos da](#model-parameters-openai-use)

## OpenAI corpo da solicitação
<a name="model-parameters-openai-request"></a>

Para ter informações sobre os parâmetros no corpo da solicitação e as respectivas descrições, consulte [Create chat completion](https://platform.openai.com/docs/api-reference/chat/create) na documentação da OpenAI.

Use os campos do corpo da solicitação das seguintes maneiras:
+ Em uma solicitação [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)ou de conclusão do OpenAI Chat, inclua os campos no corpo da solicitação.
+ Em uma solicitação [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html), faça o seguinte:
  + Mapeie as `messages` da seguinte maneira:
    + Para cada mensagem cuja função é`developer`, adicione `content` a [SystemContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_SystemContentBlock.html)na `system` matriz.
    + Para cada mensagem cuja função seja `user` ou`assistant`, adicione `content` a a [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html)no `content` campo e especifique a `role` no `role` campo de uma [Mensagem](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) na `messages` matriz.
  + Associe os valores dos seguintes campos aos campos correspondentes no objeto `inferenceConfig`:  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-openai.html)
  + Inclua qualquer outro campo no objeto `additionalModelRequestFields`.

**Considerações ao criar o corpo da solicitação**
+ Os modelos da OpenAI permitem somente entrada e saída de texto.
+ O valor no campo `model` deve corresponder ao do cabeçalho. Você pode omitir esse campo para permitir que ele seja preenchido automaticamente com o mesmo valor do cabeçalho.
+ O valor no campo `stream` deve corresponder à operação de API que você usa. Você pode omitir esse campo para permitir que ele seja preenchido automaticamente com o valor correto.
  + Se você usar [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html), o `stream` valor deve ser`false`.

## OpenAI corpo de resposta
<a name="model-parameters-openai-response"></a>

O corpo da resposta dos modelos da OpenAI está em conformidade com o objeto de preenchimento de chat apresentado pela OpenAI. Para ter mais informações sobre os campos de resposta, consulte [The chat completion object](https://platform.openai.com/docs/api-reference/chat/object) na documentação da OpenAI.

**nota**  
Se você usar `InvokeModel`, o raciocínio do modelo, circundado pelas tags `<reasoning>`, precederá o conteúdo do texto da resposta.

## Exemplo de uso de OpenAI Modelos da
<a name="model-parameters-openai-use"></a>

Esta seção apresenta alguns exemplos de como usar os modelos da OpenAI.

### Pré-requisitos
<a name="model-parameters-openai-use-prereq"></a>

Antes de testar estes exemplos, verifique se você atendeu a estes pré-requisitos:
+ **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.
**nota**  
Se você usar a API Chat Completions da OpenAI, só poderá se autenticar com uma chave de API do Amazon Bedrock.
+ **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. Você deve usar um endpoint associado a uma região compatível com o modelo usado no exemplo.
+ **Acesso ao modelo**: solicite acesso a um modelo da OpenAI. Para obter mais informações, consulte [Gerencie o acesso ao modelo usando SDK e CLI](model-access.md#model-access-modify).
+ **(Se o exemplo usar um SDK) Instale o SDK** — Após a instalação, configure as credenciais padrão e uma região padrão. AWS Se você não configurar credenciais padrão ou uma região, precisará especificá-las explicitamente nos exemplos de código pertinentes. Para ter mais informações sobre provedores de credenciais, consulte [Provedores de credenciais padronizadas de SDKs e ferramentas da AWS](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).
**nota**  
Se você usar o SDK da OpenAI, só poderá se autenticar com uma chave de API do Amazon Bedrock e deverá definir explicitamente o endpoint do Amazon Bedrock.

Expanda a seção do exemplo que você deseja ver:

### OpenAI Conclusão da criação de bate-papo
<a name="model-parameters-openai-use-chat-completions"></a>

Para ver exemplos de uso da API Create chat completion da OpenAI, escolha a guia correspondente ao método de sua preferência e siga as etapas:

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

O seguinte script Python chama a API Create chat completion com o SDK para Python da OpenAI:

```
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
)

completion = client.chat.completions.create(
    model="openai.gpt-oss-20b-1:0",
    messages=[
        {
            "role": "developer",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Hello!"
        }
    ]
)

print(completion.choices[0].message)
```

------
#### [ HTTP request using curl ]

Você pode executar o seguinte comando em um terminal para chamar a API Create chat completion usando curl:

```
curl -X POST https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1/chat/completions \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \
   -d '{
    "model": "openai.gpt-oss-20b-1:0",
    "messages": [
        {
            "role": "developer",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Hello!"
        }
    ]
}'
```

------

### InvokeModel
<a name="model-parameters-openai-use-invoke"></a>

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

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

```
import boto3
import json

# Initialize the Bedrock Runtime client
client = boto3.client('bedrock-runtime')

# Model ID
model_id = 'openai.gpt-oss-20b-1:0'

# Create the request body
native_request = {
  "model": model_id, # You can omit this field
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "assistant", 
      "content": "Hello! How can I help you today?"
    },
    {
      "role": "user",
      "content": "What is the weather like today?"
    }
  ],
  "max_completion_tokens": 150,
  "temperature": 0.7,
  "top_p": 0.9,
  "stream": False # You can omit this field
}

# Make the InvokeModel request
response = client.invoke_model(
    modelId=model_id,
    body=json.dumps(native_request)
)

# Parse and print the message for each choice in the chat completion
response_body = json.loads(response['body'].read().decode('utf-8'))

for choice in response_body['choices']:
    print(choice['message']['content'])
```

------

### Converse
<a name="model-parameters-openai-use-converse"></a>

Ao usar a API [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) unificada, você precisa associar os campos de Create chat completion da OpenAI ao campo correspondente no corpo da solicitação de Converse.

Por exemplo, compare o corpo da solicitação de preenchimento de chat a seguir com o corpo da solicitação Converse correspondente:

------
#### [ Create chat completion request body ]

```
{
  "model": "openai.gpt-oss-20b-1:0",
  "messages": [
    {
      "role": "developer",
      "content": "You are a helpful assistant."
    },
    {
      "role": "assistant", 
      "content": "Hello! How can I help you today?"
    },
    {
      "role": "user",
      "content": "What is the weather like today?"
    }
  ],
  "max_completion_tokens": 150,
  "temperature": 0.7
}
```

------
#### [ Converse request body ]

```
{
    "messages": [
        {
            "role": "user", 
            "content": [
                {
                    "text": "Hello! How can I help you today?"
                }
            ]
        },
        {
            "role": "user",
            "content": [
                {
                    "text": "What is the weather like today?"
                }
            ]
        }
    ],
    "system": [
        {
            "text": "You are a helpful assistant."
        }
    ],
    "inferenceConfig": {
        "maxTokens": 150,
        "temperature": 0.7
    }
}
```

------

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

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

```
# Use the Conversation API to send a text message to Anthropic Claude.

import boto3
from botocore.exceptions import ClientError

# Initialize the Bedrock Runtime client
client = boto3.client("bedrock-runtime")

# Set the model ID
model_id = "openai.gpt-oss-20b-1:0"

# Set up messages and system message
messages = [
    {
        "role": "assistant", 
        "content": [
            {
                "text": "Hello! How can I help you today?"
            }
        ]
    },
    {
        "role": "user",
        "content": [
            {
                "text": "What is the weather like today?"
            }
        ]
    }
]

system = [
    {
        "text": "You are a helpful assistant."
    }
]

try:
    # Send the message to the model, using a basic inference configuration.
    response = client.converse(
        modelId=model_id,
        messages=messages,
        system=system,
        inferenceConfig={
            "maxTokens": 150, 
            "temperature": 0.7, 
            "topP": 0.9
        },
    )

    # Extract and print the response text.
    for content_block in response["output"]["message"]["content"]:
        print(content_block)

except (ClientError, Exception) as e:
    print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
    exit(1)
```

------

### Guardrails com InvokeModel
<a name="model-parameters-openai-use-guardrails-invoke"></a>

Aplique uma barreira de proteção ao executar a invocação do modelo especificando o ID da barreira de proteção, a versão e se deve ou não habilitar o rastreamento da barreira de proteção no cabeçalho de uma solicitação de invocação do modelo.

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

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

```
import boto3
from botocore.exceptions import ClientError
import json

# Initiate the Amazon Bedrock Runtime client
bedrock_runtime = boto3.client("bedrock-runtime")

# Model ID
model_id = "openai.gpt-oss-20b-1:0"

# Replace with actual values from your guardrail
guardrail_id = "GR12345"
guardrail_version = "DRAFT"

# Create the request body
native_request = {
  "model": model_id, # You can omit this field
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "assistant", 
      "content": "Hello! How can I help you today?"
    },
    {
      "role": "user",
      "content": "What is the weather like today?"
    }
  ],
  "max_completion_tokens": 150,
  "temperature": 0.7,
  "top_p": 0.9,
  "stream": False # You can omit this field
}

try:
    response = bedrock_runtime.invoke_model(
        modelId=model_id,
        body=json.dumps(native_request),
        guardrailIdentifier=guardrail_id,
        guardrailVersion=guardrail_version,
        trace='ENABLED',
    )
    response_body = json.loads(response.get('body').read())
    print("Received response from InvokeModel API (Request Id: {})".format(response['ResponseMetadata']['RequestId']))
    print(json.dumps(response_body, indent=2))

except ClientError as err:
    print("RequestId = " + err.response['ResponseMetadata']['RequestId'])
    raise err
```

------

### Guardrails com OpenAI conclusões de bate-papo
<a name="model-parameters-openai-use-guardrails-chat-completions"></a>

Para ver exemplos de uso de barreiras de proteção com preenchimentos de chat da OpenAI, escolha a guia correspondente ao método de sua preferência e siga as etapas:

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

```
import openai
from openai import OpenAIError

# Endpoint for Amazon Bedrock Runtime
bedrock_endpoint = "https://bedrock-runtime.us-west-2.amazonaws.com/openai/v1"

# Model ID
model_id = "openai.gpt-oss-20b-1:0"

# Replace with actual values
bedrock_api_key = "$AWS_BEARER_TOKEN_BEDROCK"
guardrail_id = "GR12345"
guardrail_version = "DRAFT"

client = openai.OpenAI(
    api_key=bedrock_api_key,
    base_url=bedrock_endpoint,
)

try:
    response = client.chat.completions.create(
        model=model_id,
        # Specify guardrail information in the header
        extra_headers={
            "X-Amzn-Bedrock-GuardrailIdentifier": guardrail_id,
            "X-Amzn-Bedrock-GuardrailVersion": guardrail_version,
            "X-Amzn-Bedrock-Trace": "ENABLED",
        },
        # Additional guardrail information can be specified in the body
        extra_body={
            "amazon-bedrock-guardrailConfig": {
                "tagSuffix": "xyz"  # Used for input tagging
            }
        },
        messages=[
            {
                "role": "system",
                "content": "You are a helpful assistant."
            },
            {
                "role": "assistant", 
                "content": "Hello! How can I help you today?"
            },
            {
                "role": "user",
                "content": "What is the weather like today?"
            }
        ]
    )

    request_id = response._request_id
    print(f"Request ID: {request_id}")
    print(response)
    
except OpenAIError as e:
    print(f"An error occurred: {e}")
    if hasattr(e, 'response') and e.response is not None:
        request_id = e.response.headers.get("x-request-id")
        print(f"Request ID: {request_id}")
```

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

```
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.core.http.HttpResponseFor;
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;

// Endpoint for Amazon Bedrock Runtime
String bedrockEndpoint = "http://bedrock-runtime.us-west-2.amazonaws.com/openai/v1"

// Model ID
String modelId = "openai.gpt-oss-20b-1:0"

// Replace with actual values
String bedrockApiKey = "$AWS_BEARER_TOKEN_BEDROCK"
String guardrailId = "GR12345"
String guardrailVersion = "DRAFT"

OpenAIClient client = OpenAIOkHttpClient.builder()
        .apiKey(bedrockApiKey)
        .baseUrl(bedrockEndpoint)
        .build()

ChatCompletionCreateParams request = ChatCompletionCreateParams.builder()
        .addUserMessage("What is the temperature in Seattle?")
        .model(modelId)
        // Specify additional headers for the guardrail
        .putAdditionalHeader("X-Amzn-Bedrock-GuardrailIdentifier", guardrailId)
        .putAdditionalHeader("X-Amzn-Bedrock-GuardrailVersion", guardrailVersion)
        // Specify additional body parameters for the guardrail
        .putAdditionalBodyProperty(
                "amazon-bedrock-guardrailConfig",
                JsonValue.from(Map.of("tagSuffix", JsonValue.of("xyz"))) // Allows input tagging
        )
        .build();
        
HttpResponseFor<ChatCompletion> rawChatCompletionResponse =
        client.chat().completions().withRawResponse().create(request);

final ChatCompletion chatCompletion = rawChatCompletionResponse.parse();

System.out.println(chatCompletion);
```

------

### Inferência em lote
<a name="model-parameters-openai-use-batch"></a>

A [inferência em lote](batch-inference.md) permite executar a inferência do modelo de forma assíncrona com vários prompts. Para executar a inferência em lote com um modelo da OpenAI, faça o seguinte:

1. Crie um arquivo JSONL e preencha-o com pelo menos o número mínimo de objetos JSON, cada um separado por uma nova linha. Cada objeto `modelInput` deve corresponder ao formato do corpo da solicitação de [preenchimento de chat da OpenAI](https://platform.openai.com/docs/api-reference/chat/create). Veja a seguir um exemplo das duas primeiras linhas de um arquivo JSONL contendo corpos de solicitação para a OpenAI.

   ```
   {
       "recordId": "RECORD1", 
       "modelInput": {
           "messages": [
               {
                   "role": "system", 
                   "content": "You are a helpful assistant."
               }, 
               {
                   "role": "user", 
                   "content": "Can you generate a question with a factual answer?"
               }
           ], 
           "max_completion_tokens": 1000
       }
   }
   {
       "recordId": "RECORD2", 
       "modelInput": {
           "messages": [
               {
                   "role": "system", 
                   "content": "You are a helpful assistant."
               }, 
               {
                   "role": "user", 
                   "content": "What is the weather like today?"
               }
           ], 
           "max_completion_tokens": 1000
       }
   }
   ...
   ```
**nota**  
O campo `model` é opcional porque o serviço de inferência em lote o inserirá para você com base no cabeçalho, caso você o omita.  
Verifique se o arquivo JSONL está de acordo com as cotas de inferência em lote, conforme descrito em [Formatar e carregar os dados de inferência](batch-inference-data.md).

1. Faça upload do arquivo para um bucket do Amazon S3.

1. Envie uma [CreateModelInvocationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelInvocationJob.html)solicitação com um [endpoint do plano de controle Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) com o bucket S3 da etapa anterior especificada no `inputDataConfig` campo e do OpenAI modelo especificado no campo. `modelId`

Para ver um exemplo de código completo, consulte [Exemplo de código para inferência em lote](batch-inference-example.md). Substitua pelas configurações adequadas para os modelos da OpenAI.