

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# OpenAI modèles
<a name="model-parameters-openai"></a>

OpenAI propose les modèles à pondération ouverte suivants :
+ [https://huggingface.co/openai/gpt-oss-20b](https://huggingface.co/openai/gpt-oss-20b) : modèle plus petit optimisé pour une latence plus faible et des cas d’utilisation locaux ou spécialisés.
+ [https://huggingface.co/openai/gpt-oss-120b](https://huggingface.co/openai/gpt-oss-120b) : modèle plus grand optimisé pour la production et les cas d’utilisation à usage général ou exigeant un raisonnement poussé.

Le tableau suivant résume les informations sur les modèles :


| Informations | gpt-oss-20b | gpt-oss-120b | 
| --- | --- | --- | 
| Date de publication | 5 août 2025 | 5 août 2025 | 
| ID du modèle | openai.gpt-oss-20b-1:0 | openai.gpt-oss-120b-1:0 | 
| ID produit | N/A | N/A | 
| Modalités d’entrée prises en charge | Texte | Texte | 
| Modalités de sortie prises en charge | Texte | Texte | 
| Fenêtre contextuelle | 128 000 | 128 000 | 

Les modèles OpenAI prennent en charge les fonctionnalités suivantes :
+ [Modèle d’invocation](inference.md) avec les opérations suivantes :
  + [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 OpenAI Chat completions](inference-chat-completions.md)
+ [Inférence par lots](batch-inference.md) avec [CreateModelInvocationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelInvocationJob.html).
+ Application d’une [barrière de protection](guardrails.md) via l’utilisation d’en-têtes dans les opérations d’invocation du modèle.

**Topics**
+ [OpenAI corps de la demande](#model-parameters-openai-request)
+ [OpenAI organisme de réponse](#model-parameters-openai-response)
+ [Exemple d'utilisation de OpenAI modèles](#model-parameters-openai-use)

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

Pour plus d’informations sur les paramètres du corps de la demande et leurs descriptions, consultez [Create chat completion](https://platform.openai.com/docs/api-reference/chat/create) dans la documentation OpenAI.

Utilisez les champs du corps de a demande de l’une des façons suivantes :
+ Dans une demande [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)ou dans OpenAI Chat Completions, incluez les champs dans le corps de la demande.
+ Dans une demande [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html), procédez comme suit :
  + Mappez les `messages` comme suit :
    + Pour chaque message dont le rôle est`developer`, ajoutez le `content` a [SystemContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_SystemContentBlock.html)dans le `system` tableau.
    + Pour chaque message dont le rôle est `user` ou`assistant`, ajoutez le `content` à a [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html)dans le `content` champ et spécifiez le `role` dans le `role` champ d'un [message](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) dans le `messages` tableau.
  + Mappez les valeurs des champs suivants aux champs correspondants de l’objet `inferenceConfig` :  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-openai.html)
  + Incluez tout autre champ dans l’objet `additionalModelRequestFields`.

**Considérations lors de la construction du corps de la demande**
+ Les modèles OpenAI ne prennent en charge que l’entrée et la sortie de texte.
+ La valeur du champ `model` doit correspondre à celle de l’en-tête. Vous pouvez omettre ce champ pour qu’il soit automatiquement rempli avec la même valeur que l’en-tête.
+ La valeur du champ `stream` doit correspondre à l’opération d’API que vous utilisez. Vous pouvez omettre ce champ pour qu’il soit automatiquement renseigné avec la valeur correcte.
  + Si vous utilisez [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html), la `stream` valeur doit être`false`.

## OpenAI organisme de réponse
<a name="model-parameters-openai-response"></a>

Le corps de réponse pour les modèles OpenAI est conforme à l’objet d’achèvement de discussion renvoyé par OpenAI. Pour plus d’informations sur les champs de réponse, consultez [The chat completion object](https://platform.openai.com/docs/api-reference/chat/object) dans la documentation OpenAI.

**Note**  
Si vous utilisez `InvokeModel`, le raisonnement du modèle, entouré de balises `<reasoning>`, précède le contenu textuel de la réponse.

## Exemple d'utilisation de OpenAI modèles
<a name="model-parameters-openai-use"></a>

Cette section fournit quelques exemples sur l’utilisation des modèles OpenAI.

### Conditions préalables
<a name="model-parameters-openai-use-prereq"></a>

Avant d’essayer ces exemples, vérifiez que vous avez rempli les conditions préalables :
+ **Authentification** — Vous pouvez vous authentifier à l'aide de vos AWS informations d'identification ou d'une clé d'API Amazon Bedrock.

  Configurez vos AWS informations d'identification ou générez une clé d'API Amazon Bedrock pour authentifier votre demande.
  + Pour en savoir plus sur la configuration de vos AWS informations d'identification, consultez la section [Accès par programmation avec informations d'identification AWS de sécurité](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html).
  + Pour en savoir plus sur les clés d'API Amazon Bedrock et sur la façon de les générer, consultez la section Clés d'API du chapitre Build.
**Note**  
Si vous utilisez l’API OpenAI Chat completions, vous ne pouvez vous authentifier qu’avec une clé d’API Amazon Bedrock.
+ Point de **terminaison** : recherchez le point de terminaison correspondant à la AWS région à utiliser dans les [points de terminaison et les quotas Amazon Bedrock Runtime](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt). Si vous utilisez un AWS SDK, il se peut que vous deviez uniquement spécifier le code de région et non le point de terminaison complet lors de la configuration du client. Vous devez utiliser un point de terminaison associé à une région prise en charge par le modèle utilisé dans l’exemple.
+ **Accès au modèle** : demande l’accès à un modèle OpenAI. Pour de plus amples informations, veuillez consulter [Gérez l'accès aux modèles à l'aide du SDK et de la CLI](model-access.md#model-access-modify).
+ **(Si l'exemple utilise un SDK) Installez le SDK : après l'**installation, configurez les informations d'identification par défaut et une région par défaut AWS . Si vous ne configurez pas d’informations d’identification par défaut ou de région, vous devrez les spécifier explicitement dans les exemples de code pertinents. Pour plus d’informations sur les fournisseurs d’informations d’identification, consultez [Fournisseurs d’informations d’identification normalisés pour les kits SDK et les outils AWS](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).
**Note**  
Si vous utilisez le kit OpenAI SDK, vous ne pouvez vous authentifier qu’avec une clé d’API Amazon Bedrock et vous devez définir explicitement le point de terminaison Amazon Bedrock.

Développez la section correspondant à l’exemple que vous souhaitez voir :

### OpenAI Créer la fin du chat
<a name="model-parameters-openai-use-chat-completions"></a>

Pour voir des exemples d’utilisation de l’API OpenAI Create chat completion, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

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

Le script Python suivant appelle l’API Create chat completion avec le kit SDK OpenAI Python :

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

Vous pouvez exécuter la commande suivante dans un terminal pour appeler l’API Create chat completion à l’aide de 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>

Choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

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

Lorsque vous utilisez l’API [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) unifiée, vous devez mapper les champs OpenAI Create chat completion au champ correspondant dans le corps de la demande Converse.

Par exemple, comparez le corps de demande d’achèvement de conversation suivant au corps de demande Converse correspondant :

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

------

Choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

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

------

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

Appliquez une barrière de protection lors de l’exécution de l’invocation du modèle en spécifiant l’ID et la version de la barrière de protection et en indiquant s’il faut activer ou non la trace de la barrière de protection dans l’en-tête d’une demande d’invocation de modèle.

Choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

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

------

### Rambardes avec OpenAI terminaisons de chat
<a name="model-parameters-openai-use-guardrails-chat-completions"></a>

Pour voir des exemples d’utilisation de barrière de protection lors de l’achèvement d’une discussion OpenAI, choisissez l’onglet correspondant à votre méthode préférée, puis suivez les étapes :

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

------

### Inférence par lots
<a name="model-parameters-openai-use-batch"></a>

[Inférence par lots](batch-inference.md) vous permet d’exécuter l’inférence de modèle de manière asynchrone à l’aide de plusieurs invites. Pour exécuter l’inférence par lots avec un modèle OpenAI, procédez comme suit :

1. Créez un fichier JSONL et remplissez-le avec au moins le nombre minimum d’objets JSON, séparés chacun par une nouvelle ligne. Chaque objet `modelInput` doit être conforme au format du corps de la demande [OpenAI create chat completion](https://platform.openai.com/docs/api-reference/chat/create). Voici un exemple des deux premières lignes d’un fichier JSONL contenant les corps de requête pour 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
       }
   }
   ...
   ```
**Note**  
Le champ `model` est facultatif, car le service d’inférence par lots l’insérera pour vous en fonction de l’en-tête si vous l’omettez.  
Vérifiez que votre fichier JSONL est conforme aux quotas d’inférence par lots, comme indiqué dans [Mise en forme et chargement des données d’inférence par lots](batch-inference-data.md).

1. Chargement du fichier image sur un compartiment Amazon S3.

1. Envoyez une [CreateModelInvocationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelInvocationJob.html)demande avec un point de [terminaison du plan de contrôle Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) avec le compartiment S3 de l'étape précédente spécifiée dans le `inputDataConfig` champ et le OpenAI modèle spécifié dans le `modelId` champ.

Pour un exemple complet, consultez [Exemple de code pour l’inférence par lots](batch-inference-example.md). Remplacez par des configurations appropriées pour les modèles OpenAI.