Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure modelli di ragionamento OpenAI sono progettati per affrontare le attività di ragionamento e risoluzione dei problemi con maggiore attenzione e capacità. Questi modelli dedicano più tempo all'elaborazione e alla comprensione della richiesta dell'utente, rendendoli estremamente forti in aree come scienza, codifica e matematica rispetto alle iterazioni precedenti.
Funzionalità chiave dei modelli di ragionamento:
- Generazione di codice complessa: in grado di generare algoritmi e gestire attività di codifica avanzate per supportare gli sviluppatori.
- Risoluzione avanzata dei problemi: ideale per sessioni di brainstorming complete e per affrontare le sfide multiformi.
- Confronto documenti complessi: perfetto per l'analisi di contratti, file di casi o documenti legali per identificare piccole differenze.
- Istruzioni successive e Gestione del flusso di lavoro: particolarmente efficace per la gestione dei flussi di lavoro che richiedono contesti più brevi.
Prerequisiti
Modello di ragionamento di Azure OpenAI distribuito.
Se si usano gli esempi REST:
Installare il interfaccia della riga di comando di Azure. Per altre informazioni, vedere Installare il interfaccia della riga di comando di Azure.
Accedere con , quindi generare un token di connessione e archiviarlo nella variabile di ambiente.
az account get-access-token --resource https://cognitiveservices.azure.com --query accessToken -o tsv
Usage
Questi modelli non supportano attualmente lo stesso set di parametri di altri modelli che usano l'API di completamento della chat.
API di completamento della chat
- C#
- Python
- REST
- Risultato
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default");
ChatClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
ChatCompletionOptions options = new ChatCompletionOptions
{
MaxOutputTokenCount = 100000
};
ChatCompletion completion = client.CompleteChat(
new DeveloperChatMessage("You are a helpful assistant"),
new UserChatMessage("Tell me about the bitter lesson")
);
Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");
Sforzo di ragionamento
Annotazioni
I modelli di ragionamento hanno come parte della risposta del modello. Si tratta di token nascosti che non vengono restituiti come parte del contenuto della risposta del messaggio, ma usati dal modello per generare una risposta finale alla richiesta. può essere impostato su , o per tutti i modelli di ragionamento ad eccezione di . I modelli di ragionamento GPT-5 supportano una nuova impostazione di . Maggiore è l'impostazione dell'impegno, più tempo il modello impiegherà per elaborare la richiesta, il che generalmente comporterà un numero maggiore di .
Messaggi per sviluppatori
I messaggi per sviluppatori () sono funzionalmente uguali ai messaggi di sistema.
L'aggiunta di un messaggio per sviluppatore all'esempio di codice precedente sarà simile alla seguente:
- C#
- Python
- REST
- Risultato
using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default");
ChatClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
ChatCompletionOptions options = new ChatCompletionOptions
{
ReasoningEffortLevel = ChatReasoningEffortLevel.Low,
MaxOutputTokenCount = 100000
};
ChatCompletion completion = client.CompleteChat(
new DeveloperChatMessage("You are a helpful assistant"),
new UserChatMessage("Tell me about the bitter lesson")
);
Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");
Riepilogo del ragionamento
Quando si usano i modelli di ragionamento più recenti con l'API Risposte , è possibile usare il parametro di riepilogo del ragionamento per ricevere riepiloghi della catena di ragionamenti del modello.
Importante
Il tentativo di estrarre il ragionamento non elaborato tramite metodi diversi dal parametro di riepilogo del ragionamento non è supportato, può violare i criteri di utilizzo accettabili e può comportare limitazioni o sospensioni quando viene rilevato.
- C#
- Python
- REST
- Risultato
using OpenAI;
using OpenAI.Responses;
using System.ClientModel.Primitives;
using Azure.Identity;
#pragma warning disable OPENAI001 //currently required for token based authentication
BearerTokenPolicy tokenPolicy = new(
new DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default");
OpenAIResponseClient client = new(
model: "o4-mini",
authenticationPolicy: tokenPolicy,
options: new OpenAIClientOptions()
{
Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
}
);
OpenAIResponse response = await client.CreateResponseAsync(
userInputText: "What's the optimal strategy to win at poker?",
new ResponseCreationOptions()
{
ReasoningOptions = new ResponseReasoningOptions()
{
ReasoningEffortLevel = ResponseReasoningEffortLevel.High,
ReasoningSummaryVerbosity = ResponseReasoningSummaryVerbosity.Auto,
},
});
// Get the reasoning summary from the first OutputItem (ReasoningResponseItem)
Console.WriteLine("=== Reasoning Summary ===");
foreach (var item in response.OutputItems)
{
if (item is ReasoningResponseItem reasoningItem)
{
foreach (var summaryPart in reasoningItem.SummaryParts)
{
if (summaryPart is ReasoningSummaryTextPart textPart)
{
Console.WriteLine(textPart.Text);
}
}
}
}
Console.WriteLine("\n=== Assistant Response ===");
// Get the assistant's output
Console.WriteLine(response.GetOutputText());
Annotazioni
Anche se abilitato, i riepiloghi di ragionamento non sono garantiti per ogni passaggio/richiesta. Si tratta di un comportamento previsto.
Python Lark
I modelli di ragionamento della serie GPT-5 possono chiamare un nuovo denominato . Questo strumento si basa su Python lark e può essere utilizzato per vincolare l'output del modello in modo più flessibile.
API delle risposte
{
"model": "gpt-5-2025-08-07",
"input": "please calculate the area of a circle with radius equal to the number of 'r's in strawberry",
"tools": [
{
"type": "custom",
"name": "lark_tool",
"format": {
"type": "grammar",
"syntax": "lark",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/"
}
}
],
"tool_choice": "required"
}
Microsoft Entra ID:
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=token_provider,
)
response = client.responses.create(
model="gpt-5", # replace with your model deployment name
tools=[
{
"type": "custom",
"name": "lark_tool",
"format": {
"type": "grammar",
"syntax": "lark",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/"
}
}
],
input=[{"role": "user", "content": "Please calculate the area of a circle with radius equal to the number of 'r's in strawberry"}],
)
print(response.model_dump_json(indent=2))
Chiave API:
import os
from openai import OpenAI
client = OpenAI(
base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
api_key=os.getenv("AZURE_OPENAI_API_KEY")
)
response = client.responses.create(
model="gpt-5", # replace with your model deployment name
tools=[
{
"type": "custom",
"name": "lark_tool",
"format": {
"type": "grammar",
"syntax": "lark",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/"
}
}
],
input=[{"role": "user", "content": "Please calculate the area of a circle with radius equal to the number of 'r's in strawberry"}],
)
print(response.model_dump_json(indent=2))
Output:
{
"id": "resp_689a0cf927408190b8875915747667ad01c936c6ffb9d0d3",
"created_at": 1754926332.0,
"error": null,
"incomplete_details": null,
"instructions": null,
"metadata": {},
"model": "gpt-5",
"object": "response",
"output": [
{
"id": "rs_689a0cfd1c888190a2a67057f471b5cc01c936c6ffb9d0d3",
"summary": [],
"type": "reasoning",
"encrypted_content": null,
"status": null
},
{
"id": "msg_689a0d00e60c81908964e5e9b2d6eeb501c936c6ffb9d0d3",
"content": [
{
"annotations": [],
"text": "“strawberry” has 3 r’s, so the radius is 3.\nArea = πr² = π × 3² = 9π ≈ 28.27 square units.",
"type": "output_text",
"logprobs": null
}
],
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"temperature": 1.0,
"tool_choice": "auto",
"tools": [
{
"name": "lark_tool",
"parameters": null,
"strict": null,
"type": "custom",
"description": null,
"format": {
"type": "grammar",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/",
"syntax": "lark"
}
}
],
"top_p": 1.0,
"background": false,
"max_output_tokens": null,
"max_tool_calls": null,
"previous_response_id": null,
"prompt": null,
"prompt_cache_key": null,
"reasoning": {
"effort": "medium",
"generate_summary": null,
"summary": null
},
"safety_identifier": null,
"service_tier": "default",
"status": "completed",
"text": {
"format": {
"type": "text"
}
},
"top_logprobs": null,
"truncation": "disabled",
"usage": {
"input_tokens": 139,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 240,
"output_tokens_details": {
"reasoning_tokens": 192
},
"total_tokens": 379
},
"user": null,
"content_filters": null,
"store": true
}
Completamenti delle chat
{
"messages": [
{
"role": "user",
"content": "Which one is larger, 42 or 0?"
}
],
"tools": [
{
"type": "custom",
"name": "custom_tool",
"custom": {
"name": "lark_tool",
"format": {
"type": "grammar",
"grammar": {
"syntax": "lark",
"definition": "start: QUESTION NEWLINE ANSWER\nQUESTION: /[^\\n?]{1,200}\\?/\nNEWLINE: /\\n/\nANSWER: /[^\\n!]{1,200}!/"
}
}
}
}
],
"tool_choice": "required",
"model": "gpt-5-2025-08-07"
}
Disponibilità
Disponibilità della regione
| Modello | Area geografica | Accesso limitato |
|---|---|---|
gpt-5.4-pro |
Stati Uniti orientali 2 (standard globale) Svezia centrale (standard globale) |
Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5.4 |
Est degli Stati Uniti 2 (Standard globale e Standard Datazone) Svezia centrale (standard globale) Polonia centrale (standard globale) Stati Uniti centro-meridionali (standard globale) |
Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5.3-codex |
Stati Uniti orientali 2 e Svezia centrale (standard globale) | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5.2-codex |
Stati Uniti orientali 2 e Svezia centrale (standard globale) | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5.2 |
Disponibilità dei modelli | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5.1-codex-max |
Disponibilità dei modelli | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5.1 |
Disponibilità dei modelli | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5.1-chat |
Disponibilità dei modelli | Nessuna richiesta di accesso necessaria. |
gpt-5.1-codex |
Disponibilità dei modelli | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5.1-codex-mini |
Disponibilità dei modelli | Nessuna richiesta di accesso necessaria. |
gpt-5-pro |
Disponibilità dei modelli | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5-codex |
Disponibilità dei modelli | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5 |
Disponibilità dei modelli | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
gpt-5-mini |
Disponibilità dei modelli | Nessuna richiesta di accesso necessaria. |
gpt-5-nano |
Disponibilità dei modelli | Nessuna richiesta di accesso necessaria. |
o3-pro |
Disponibilità dei modelli | Richiesta di accesso: applicazione modello di accesso limitato. Se si ha già accesso a un modello di accesso limitato, non è necessaria alcuna richiesta. |
codex-mini |
Disponibilità dei modelli | Nessuna richiesta di accesso necessaria. |
o4-mini |
Disponibilità dei modelli | Nessuna richiesta di accesso necessaria per usare le funzionalità di base di questo modello. Richiedi accesso: funzionalità di riepilogo del ragionamento di o4-mini |
o3 |
Disponibilità dei modelli | Richiedere l'accesso: applicazione modello di accesso limitato |
o3-mini |
Disponibilità del modello. | L'accesso non è più limitato per questo modello. |
o1 |
Disponibilità del modello. | L'accesso non è più limitato per questo modello. |
Supporto api e funzionalità
- Modelli di ragionamento GPT-5
- Modelli di ragionamento serie O
| Feature | gpt-5.4-pro | gpt-5.4, 2026-03-05 | gpt-5.3-codex, 2026-02-24 | gpt-5.2-codex, 2026-01-14 | gpt-5.2, 2025-12-11 | gpt-5.1-codex-max, 2025-12-04 | gpt-5.1, 2025-11-13 | gpt-5.1-chat, 2025-11-13 | gpt-5.1-codex, 2025-11-13 | gpt-5.1-codex-mini, 2025-11-13 | gpt-5-pro, 2025-10-06 | gpt-5-codex, 2025-09-011 | gpt-5, 2025-08-07 | gpt-5-mini, 2025-08-07 | gpt-5-nano, 2025-08-07 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Messaggi per sviluppatori | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Output strutturati | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Finestra di contesto | 400,000 Input: 272.000 Output: 128.000 Finestra di contesto 1.050.000 (presto disponibile!) |
400,000 Input: 272.000 Output: 128.000 Finestra di contesto 1.050.000 (presto disponibile!) |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
128,000 Input: 111.616 Output: 16.384 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
400,000 Input: 272.000 Output: 128.000 |
| Sforzo di ragionamento7 | ✅ | ✅ | ✅ | ✅ | ✅ | 6 | 4 | ✅ | ✅ | ✅ | 5 | ✅ | ✅ | ✅ | ✅ |
| Input immagine | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| API di completamento per chat | - | ✅ | - | - | ✅ | - | ✅ | ✅ | - | - | - | - | ✅ | ✅ | ✅ |
| API delle risposte | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Funzioni/Strumenti | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| Chiamate di strumenti paralleli1 | - | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | ✅ |
| 2 | - | ✅ | - | - | ✅ | - | ✅ | ✅ | - | - | - | - | ✅ | ✅ | ✅ |
| Messaggi di sistema 3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Riepilogo del ragionamento | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Trasmissione in diretta | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | - | ✅ | ✅ | ✅ | ✅ |
1 Le chiamate allo strumento parallele non sono supportate quando è impostato su
2 I modelli di ragionamento funzioneranno solo con il parametro quando si usa l'API Completamenti delle chat. Usare con l'API delle risposte.
3 I modelli di ragionamento più recenti supportano i messaggi di sistema per semplificare la migrazione. Non è consigliabile usare sia un messaggio per sviluppatori che un messaggio di sistema nella stessa richiesta API.
4 il valore predefinito è . Quando si esegue l'aggiornamento dai modelli di ragionamento precedenti a , tenere presente che potrebbe essere necessario aggiornare il codice per fornire esplicitamente un livello di reasoning_effort se si desidera che reasoning_effort si verifichi.
5 supporta solo , questo è il valore predefinito anche quando non viene passato in modo esplicito al modello.
6 aggiunge il supporto per un nuovo livello di cui è il livello più alto su cui è possibile impostare lo sforzo di ragionamento.
7, , , e supportano come valore per il parametro . Se si desidera usare questi modelli per generare risposte senza ragionamento, impostare . Questa impostazione può aumentare la velocità.
Nuove funzionalità di ragionamento GPT-5
| Feature | Descrzione |
|---|---|
reasoning_effort |
è supportato solo con è ora supportato dai modelli di ragionamento della serie GPT-5. è supportato solo per Opzioni: , , , , |
verbosity |
Un nuovo parametro che fornisce un controllo più granulare sul modo in cui sarà conciso l'output del modello. Opzioni:, , . |
preamble |
I modelli di ragionamento serie GPT-5 hanno la possibilità di dedicare più tempo a "pensare" prima di eseguire una chiamata di funzione/strumento. Quando si verifica questa pianificazione, il modello può fornire informazioni dettagliate sui passaggi di pianificazione nella risposta del modello tramite un nuovo oggetto denominato oggetto . La generazione di preamboli nella risposta del modello non è garantita anche se è possibile incoraggiare il modello usando il parametro e passando contenuto come "È NECESSARIO pianificare ampiamente prima di ogni chiamata di funzione. Inviare sempre il piano all'utente prima di chiamare qualsiasi funzione" |
| strumenti consentiti | È possibile specificare più strumenti sotto invece di uno solo. |
| tipo di strumento personalizzato | Abilita gli output di testo grezzo (non JSON) |
lark_tool |
Consente di usare alcune delle funzionalità di Python lark per vincolare più flessibili le risposte del modello |
non supporta minimale.
Per altre informazioni, è anche consigliabile leggere la guida alle funzionalità GPT-5 di OpenAI e la guida alle funzioni GPT-5.
Annotazioni
- Per evitare timeout, è consigliabile usare la modalità in background per .
- attualmente non supporta la generazione di immagini.
Non supportato
Di seguito sono attualmente non supportati i modelli di ragionamento:
- , , , , , ,
Output markdown
Per impostazione predefinita, i modelli e non tenteranno di produrre un output che include la formattazione markdown. Un caso d'uso comune in cui questo comportamento è indesiderato è quando si vuole che il modello restituisca il codice contenuto in un blocco di codice markdown. Quando il modello genera l'output senza formattazione markdown, si perdono funzionalità come l'evidenziazione della sintassi e i blocchi di codice copiabili nelle esperienze di playground interattive. Per eseguire l'override di questo nuovo comportamento predefinito e incoraggiare l'inclusione markdown nelle risposte del modello, aggiungere la stringa all'inizio del messaggio dello sviluppatore.
L'aggiunta all'inizio del messaggio dello sviluppatore non garantisce che il modello includa la formattazione markdown nella risposta, ma aumenta solo la probabilità. È stato rilevato dal test interno che è meno efficace da solo con il modello rispetto a con .
Per migliorare le prestazioni di è possibile aumentare ulteriormente l'inizio del messaggio dello sviluppatore che spesso comporterà l'output desiderato. Invece di aggiungere semplicemente all'inizio del messaggio dello sviluppatore, è possibile provare ad aggiungere un'istruzione iniziale più descrittiva come uno degli esempi seguenti:
Formatting re-enabled - please enclose code blocks with appropriate markdown tags.Formatting re-enabled - code output should be wrapped in markdown.
A seconda dell'output previsto, potrebbe essere necessario personalizzare ulteriormente il messaggio iniziale dello sviluppatore per specificare come destinazione il caso d'uso specifico.