

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

OpenAI offre i seguenti modelli a pesi aperti:
+ [https://huggingface.co/openai/gpt-oss-20b](https://huggingface.co/openai/gpt-oss-20b): modello più piccolo ottimizzato per una latenza inferiore e casi d’uso locali o specializzati.
+ [https://huggingface.co/openai/gpt-oss-120b](https://huggingface.co/openai/gpt-oss-120b): modello più grande ottimizzato per la produzione e per casi d’uso generici o che richiedono elevate capacità di ragionamento.

La tabella seguente riepiloga le informazioni sui modelli:


| Informazioni | gpt-oss-20b | gpt-oss-120b | 
| --- | --- | --- | 
| Data di rilascio | 5 agosto 2025 | 5 agosto 2025 | 
| ID modello | openai.gpt-oss-20b-1:0 | openai.gpt-oss-120b-1:0 | 
| ID prodotto | N/D | N/D | 
| Modalità di input supportate | Testo | Testo | 
| Modalità di input supportate | Testo | Testo | 
| Finestra contestuale | 128.000 | 128.000 | 

I modelli OpenAI supportano le seguenti funzionalità:
+ [Invocazione del modello](inference.md) con le seguenti operazioni:
  + [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 di OpenAI](inference-chat-completions.md)
+ [Inferenza in batch](batch-inference.md) con [CreateModelInvocationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelInvocationJob.html).
+ Applicazione [Guardrail](guardrails.md) tramite l’uso di intestazioni nelle operazioni di invocazione del modello.

**Topics**
+ [Corpo della richiesta di OpenAI](#model-parameters-openai-request)
+ [Corpo della risposta di OpenAI](#model-parameters-openai-response)
+ [Esempio di utilizzo di modelli OpenAI](#model-parameters-openai-use)

## Corpo della richiesta di OpenAI
<a name="model-parameters-openai-request"></a>

Per informazioni sui parametri nel corpo della richiesta e sulle relative descrizioni, consultare [Create chat completion](https://platform.openai.com/docs/api-reference/chat/create) nella documentazione di OpenAI.

Utilizzare i campi del corpo della richiesta nei seguenti modi:
+ In una richiesta [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)o OpenAI Chat Completions, includi i campi nel corpo della richiesta.
+ In una richiesta [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html), procedere come segue:
  + Mappare i `messages` nel modo seguente:
    + Per ogni messaggio il cui ruolo è`developer`, aggiungi la `content` a [SystemContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_SystemContentBlock.html)nell'`system`array.
    + Per ogni messaggio il cui ruolo è `user` o`assistant`, aggiungi `content` a a [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html)nel `content` campo e specifica il `role` nel `role` campo di un [messaggio](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html) nell'`messages`array.
  + Associare i valori dei seguenti ai campi corrispondenti nell’oggetto `inferenceConfig`:  
****    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/bedrock/latest/userguide/model-parameters-openai.html)
  + Includere qualsiasi altro campo nell’oggetto `additionalModelRequestFields`.

**Considerazioni durante la creazione del corpo della richiesta**
+ I modelli OpenAI supportano solo input e output di testo.
+ Il valore nel campo `model` deve corrispondere a quello nell’intestazione. È possibile omettere questo campo per consentire che venga compilato automaticamente con lo stesso valore dell’intestazione.
+ Il valore nel campo `stream` deve corrispondere all’operazione dell’API utilizzata. È possibile omettere questo campo per consentire che venga compilato automaticamente con il valore corretto.
  + Se si utilizza [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html), il `stream` valore deve essere`false`.

## Corpo della risposta di OpenAI
<a name="model-parameters-openai-response"></a>

Il corpo della risposta per i modelli OpenAI è conforme all’oggetto di completamento della chat restituito da OpenAI. Per ulteriori informazioni sui campi di risposta, consultare [The chat completion object](https://platform.openai.com/docs/api-reference/chat/object) nella documentazione di OpenAI.

**Nota**  
Se si utilizza `InvokeModel`, il ragionamento del modello, circondato da tag `<reasoning>`, precede il contenuto di testo della risposta.

## Esempio di utilizzo di modelli OpenAI
<a name="model-parameters-openai-use"></a>

Questa sezione fornisce alcuni esempi di come utilizzare i modelli OpenAI.

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

Prima di provare questi esempi, verificare di aver soddisfatto i prerequisiti:
+ **Autenticazione**: puoi autenticarti con AWS le tue credenziali o con una chiave API Amazon Bedrock.

  Configura AWS le tue credenziali o genera una chiave API Amazon Bedrock per autenticare la tua richiesta.
  + Per ulteriori informazioni sulla configurazione delle AWS credenziali, consulta Accesso [programmatico](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html) con credenziali di sicurezza. AWS 
  + Per informazioni sulle chiavi API di Amazon Bedrock e su come generarle, consulta la sezione Chiavi API nel capitolo Build.
**Nota**  
Se si utilizza l’API Chat Completions di OpenAI, è possibile autenticarsi solo con una chiave API Amazon Bedrock.
+ **Endpoint**: trova l'endpoint che corrisponde alla AWS regione da utilizzare negli [endpoint e nelle quote di Amazon Bedrock Runtime](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt). Se utilizzi un AWS SDK, potresti dover specificare solo il codice regionale e non l'intero endpoint quando configuri il client. È necessario utilizzare un endpoint associato a una Regione supportata dal modello utilizzato nell’esempio.
+ **Accesso al modello**: consente di richiedere l’accesso a un modello OpenAI. Per ulteriori informazioni, consulta [Gestisci l'accesso ai modelli tramite SDK e CLI](model-access.md#model-access-modify).
+ **(Se l'esempio utilizza un SDK) Installa l'SDK: dopo l'**installazione, configura le credenziali predefinite e una regione predefinite. AWS Se non vengono configurate le credenziali predefinite o una Regione, è necessario specificarle esplicitamente negli esempi di codice pertinenti. Per ulteriori informazioni sui provider di credenziali standardizzati, consulta [AWS SDKs and](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) Tools (provider di credenziali standardizzati).
**Nota**  
Se si utilizza l’SDK OpenAI, è possibile autenticarsi solo con una chiave API Amazon Bedrock ed è necessario impostare esplicitamente l’endpoint Amazon Bedrock.

Espandere la sezione relativa all’esempio desiderato:

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

Per esempi di utilizzo dell’API Create chat completion di OpenAI, scegliere la scheda corrispondente al metodo preferito, poi seguire la procedura:

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

Il seguente script Python chiama l’API Create chat completion con l’SDK Python di 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 ]

Eseguire il seguente comando in un terminale per chiamare l’API Create chat completion con 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>

Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

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

Quando si utilizza l’API [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) unificata, è necessario associare i campi di Create chat completion di OpenAI al campo corrispondente nel corpo della richiesta di Converse.

Ad esempio, confrontare il seguente corpo della richiesta di completamento della chat con il corpo della richiesta di Converse corrispondente:

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

------

Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

------
#### [ 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 con InvokeModel
<a name="model-parameters-openai-use-guardrails-invoke"></a>

Per applicare un guardrail durante l’invocazione del modello, specificare l’ID del guardrail, la versione e se abilitare o meno la traccia del guardrail nell’intestazione di una richiesta di invocazione del modello.

Scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

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

------

### Guardrail con Chat Completions di OpenAI
<a name="model-parameters-openai-use-guardrails-chat-completions"></a>

Per esempi di utilizzo dei guardrail con Chat Completions OpenAI, scegli la scheda relativa al metodo che preferisci, quindi segui la procedura:

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

------

### Inferenza in batch
<a name="model-parameters-openai-use-batch"></a>

L’[inferenza in batch](batch-inference.md) consente di eseguire l’inferenza del modello con più prompt. Per eseguire l’inferenza in batch con un modello OpenAI, procedere come segue:

1. Creare un file JSONL e popolarlo con almeno il numero minimo di oggetti JSON, ciascuno separato da una nuova riga. Ogni oggetto `modelInput` deve essere conforme al formato del corpo della richiesta [Create chat completion di OpenAI](https://platform.openai.com/docs/api-reference/chat/create). Di seguito viene mostrato un esempio delle prime due righe di un file JSONL contenente i corpi della richiesta per 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**  
Il campo `model` è facoltativo perché il servizio di inferenza in batch lo inserirà automaticamente in base all’intestazione, se omesso.  
Verificare il tuo file JSONL sia conforme alle quote di inferenza in batch come indicato in [Formattazione e caricamento dei propri dati di inferenza in batch](batch-inference-data.md).

1. Caricare il file immagine in un bucket Amazon S3.

1. Invia una [CreateModelInvocationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelInvocationJob.html)richiesta con un [endpoint del piano di controllo Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-cp) con il bucket S3 del passaggio precedente specificato nel `inputDataConfig` campo e il OpenAI modello specificato nel campo. `modelId`

Per un esempio di end-to-end codice, consulta. [Esempio di codice per inferenza in batch](batch-inference-example.md) Sostituire con le configurazioni appropriate per i modelli OpenAI.