

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.

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

OpenAI ofrece los siguientes modelos de ponderación abierta:
+ [https://huggingface.co/openai/gpt-oss-20b](https://huggingface.co/openai/gpt-oss-20b): un modelo más pequeño optimizado para una latencia más baja y para casos de uso locales o especializados.
+ [https://huggingface.co/openai/gpt-oss-120b](https://huggingface.co/openai/gpt-oss-120b): un modelo más grande optimizado para casos de uso de producción y de uso general o de alto razonamiento.

En la siguiente tabla se resume la información de estos modelos:


| Información | gpt-oss-20b | gpt-oss-120b | 
| --- | --- | --- | 
| Fecha de publicación | 5 de agosto de 2025 | 5 de agosto de 2025 | 
| ID del modelo | openai.gpt-oss-20b-1:0 | openai.gpt-oss-120b-1:0 | 
| ID de producto | N/A | N/A | 
| Modalidades de entrada admitidas | Texto | Texto | 
| Modalidades de salida admitidas | Texto | Texto | 
| Ventana de contexto | 128 000 | 128.000 | 

Los modelos de OpenAI admiten las siguientes características:
+ [Invocación del modelo](inference.md) con las siguientes operaciones:
  + [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 de OpenAI](inference-chat-completions.md)
+ [Inferencia por lotes](batch-inference.md) con [CreateModelInvocationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelInvocationJob.html).
+ Aplicación de [barreras de protección](guardrails.md) mediante el uso de encabezados en las operaciones de invocación del modelo.

**Topics**
+ [Cuerpo de la solicitud OpenAI](#model-parameters-openai-request)
+ [Cuerpo de la respuesta de OpenAI](#model-parameters-openai-response)
+ [Ejemplo de uso de modelos de OpenAI](#model-parameters-openai-use)

## Cuerpo de la solicitud OpenAI
<a name="model-parameters-openai-request"></a>

Para obtener información sobre los parámetros del cuerpo de la solicitud y sus descripciones, consulte [Create chat completion](https://platform.openai.com/docs/api-reference/chat/create) en la documentación de OpenAI.

Utilice los campos del cuerpo de la solicitud de las siguientes maneras:
+ En una [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)solicitud de finalización de OpenAI chat, incluya los campos en el cuerpo de la solicitud.
+ En una solicitud [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html), haga lo siguiente:
  + Asigne el elemento `messages` como se indica a continuación:
    + Para cada mensaje cuya función sea`developer`, agrega la `content` a [SystemContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_SystemContentBlock.html)en la `system` matriz.
    + Para cada mensaje cuya función sea `user` o`assistant`, añada la `content` a a [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html)en el `content` campo y especifique la `role` en el `role` campo de un [mensaje](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) de la `messages` matriz.
  + Asigne los valores de los siguientes campos a los campos correspondientes del objeto `inferenceConfig`:  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-openai.html)
  + Incluya todos los demás campos en el objeto `additionalModelRequestFields`.

**Consideraciones al crear el cuerpo de la solicitud**
+ Los modelos de OpenAI solo admiten la entrada y salida de texto.
+ El valor del campo `model` debe coincidir con el del encabezado. Puede omitir este campo para que se rellene automáticamente con el mismo valor que el encabezado.
+ El valor del campo `stream` debe coincidir con la operación de API que utilice. Puede omitir este campo para que se rellene automáticamente con el valor correcto.
  + Si lo usa [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html), el `stream` valor debe ser`false`.

## Cuerpo de la respuesta de OpenAI
<a name="model-parameters-openai-response"></a>

El cuerpo de la respuesta de los modelos de OpenAI se ajusta al objeto de finalización del chat devuelto por OpenAI. Para obtener más información acerca de los campos de respuesta, consulte [The chat completion object](https://platform.openai.com/docs/api-reference/chat/object) en la documentación de OpenAI.

**nota**  
Si usa `InvokeModel`, el razonamiento del modelo, rodeado por las etiquetas `<reasoning>`, precede al contenido textual de la respuesta.

## Ejemplo de uso de modelos de OpenAI
<a name="model-parameters-openai-use"></a>

En esta sección se proporcionan algunos ejemplos de cómo utilizar los modelos de OpenAI.

### Requisitos previos
<a name="model-parameters-openai-use-prereq"></a>

Antes de probar estos ejemplos, asegúrese de haber satisfecho los requisitos previos:
+ **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.
**nota**  
Si utiliza la API Chat completions de OpenAI, solo puede autenticarse con una clave de API de Amazon Bedrock.
+ **Punto final**: busque el punto de enlace 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. Debe usar un punto de conexión asociado a una región compatible con el modelo utilizado en el ejemplo.
+ **Acceso al modelo**: solicite el acceso a un modelo de OpenAI. 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).
+ **(Si el ejemplo usa un SDK) Instale el SDK**: después de la instalación, configure las credenciales predeterminadas y una AWS región predeterminada. Si no configura las credenciales predeterminadas o una región, tendrá que especificarlas de forma explícita en los ejemplos de código correspondientes. Para obtener más información sobre los proveedores de credenciales estandarizados, consulte los proveedores de [credenciales estandarizados AWS SDKs y Herramientas](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).
**nota**  
Si usa el SDK de OpenAI, solo puede autenticarse con una clave de API de Amazon Bedrock y debe configurar explícitamente el punto de conexión de Amazon Bedrock.

Amplíe la sección para ver el ejemplo que desee:

### Create chat completion de OpenAI
<a name="model-parameters-openai-use-chat-completions"></a>

Para ver ejemplos del uso de la API Create chat completion de OpenAI, seleccione la pestaña correspondiente al método que prefiera y siga los pasos:

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

El siguiente script de Python llama a la API Create chat completion con el SDK de Python de 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 ]

Puede ejecutar el siguiente comando en una ventana de terminal para llamar a la API Create chat completion mediante 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>

Elija la pestaña del método que prefiera y siga estos pasos:

------
#### [ 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>

Cuando utiliza la API unificada [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html), debe asignar los campos de Create chat completion de OpenAI a su campo correspondiente en el cuerpo de la solicitud de Converse.

Por ejemplo, compare el siguiente cuerpo de la solicitud de finalización del chat con el cuerpo de la solicitud de Converse correspondiente:

------
#### [ 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
    }
}
```

------

Elija la pestaña del método que prefiera y siga estos pasos:

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

------

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

Aplique una barrera de protección al ejecutar la invocación del modelo especificando el ID de la barrera de protección, la versión y si desea habilitar o no el rastreo de la barrera de protección en el encabezado de una solicitud de invocación de modelos.

Elija la pestaña del método que prefiera y siga estos pasos:

------
#### [ 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
```

------

### Barreras de protección con finalizaciones de chat de OpenAI
<a name="model-parameters-openai-use-guardrails-chat-completions"></a>

Para ver ejemplos del uso de barreras de protección con finalizaciones de chat de OpenAI, seleccione la pestaña correspondiente al método que prefiera y siga los pasos:

------
#### [ 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);
```

------

### Inferencia en lotes
<a name="model-parameters-openai-use-batch"></a>

La [inferencia en lotes](batch-inference.md) le permite ejecutar la inferencia de modelos de forma asíncrona con varias peticiones. Para ejecutar la inferencia en lotes con un modelo de OpenAI, haga lo siguiente:

1. Cree un archivo JSONL y rellénelo con al menos el número mínimo de objetos JSON, cada uno de ellos separado por una nueva línea. Cada objeto `modelInput` debe ajustarse al formato del cuerpo de la solicitud de [create chat completion de OpenAI](https://platform.openai.com/docs/api-reference/chat/create). A continuación, se muestra un ejemplo de las dos primeras líneas de un archivo JSONL que contiene los cuerpos de las solicitudes de 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**  
El campo `model` es opcional porque el servicio de inferencia en lotes lo insertará automáticamente en función del encabezado si lo omite.  
Compruebe que el archivo JSONL cumpla las cuotas de inferencia en lotes que se indican en [Formateo y carga de los datos de la inferencia por lotes](batch-inference-data.md).

1. Cargue el archivo en un bucket de Amazon S3.

1. Envíe una [CreateModelInvocationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelInvocationJob.html)solicitud con un [punto final del plano de control de Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) con el bucket S3 del paso anterior especificado en el `inputDataConfig` campo y el OpenAI modelo especificado en el `modelId` campo.

Para ver un ejemplo end-to-end de código, consulte[Ejemplos de código de inferencia en lotes](batch-inference-example.md). Sustitúyalo con las configuraciones adecuadas para los modelos de OpenAI.