Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure OpenAI-resonemangsmodeller är utformade för att hantera resonemang och problemlösningsuppgifter med ökat fokus och ökad kapacitet. Dessa modeller ägnar mer tid åt att bearbeta och förstå användarens begäran, vilket gör dem exceptionellt starka inom områden som vetenskap, kodning och matematik jämfört med tidigare iterationer.
Viktiga funktioner i resonemangsmodeller:
- Komplex kodgenerering: Kan generera algoritmer och hantera avancerade kodningsuppgifter för att stödja utvecklare.
- Avancerad problemlösning: Perfekt för omfattande brainstormingsessioner och hantering av mångfacetterade utmaningar.
- Komplex dokumentjämförelse: Perfekt för att analysera kontrakt, ärendefiler eller juridiska dokument för att identifiera subtila skillnader.
- Följning av instruktioner och arbetsflödeshantering: Särskilt effektivt för att hantera arbetsflöden som kräver kortare kontext.
Tillgänglighet
Tillgänglighet i regionen
| Modell | Region | Begränsad åtkomst |
|---|---|---|
gpt-5-pro |
Östra USA 2 och Centrala Sverige (Global Standard) | Begär åtkomst: Program för begränsad åtkomstmodell. Om du redan har åtkomst till en modell för begränsad åtkomst krävs ingen begäran. |
gpt-5-codex |
Östra USA 2 och Centrala Sverige (Global Standard) | Begär åtkomst: Program för begränsad åtkomstmodell. Om du redan har åtkomst till en modell för begränsad åtkomst krävs ingen begäran. |
gpt-5 |
Modelltillgänglighet | Begär åtkomst: Program för begränsad åtkomstmodell. Om du redan har åtkomst till en modell för begränsad åtkomst krävs ingen begäran. |
gpt-5-mini |
Modelltillgänglighet | Ingen åtkomstbegäran behövs. |
gpt-5-nano |
Modelltillgänglighet | Ingen åtkomstbegäran behövs. |
o3-pro |
Östra USA 2 och Centrala Sverige (Global Standard) | Begär åtkomst: Program för begränsad åtkomstmodell. Om du redan har åtkomst till en modell för begränsad åtkomst krävs ingen begäran. |
codex-mini |
Östra USA 2 och Centrala Sverige (Global Standard) | Ingen åtkomstbegäran behövs. |
o4-mini |
Modelltillgänglighet | Ingen åtkomstbegäran krävs för att använda kärnfunktionerna i den här modellen. Begär åtkomst: o4-mini sammanfattningsfunktion för resonemang |
o3 |
Modelltillgänglighet | Begär åtkomst: Program för begränsad åtkomstmodell |
o3-mini |
Modelltillgänglighet. | Åtkomsten är inte längre begränsad för den här modellen. |
o1 |
Modelltillgänglighet. | Åtkomsten är inte längre begränsad för den här modellen. |
o1-mini |
Modelltillgänglighet. | Ingen åtkomstbegäran krävs för Global Standard-distributioner. Standarddistributioner (regionala) är för närvarande endast tillgängliga för att välja kunder som tidigare beviljats åtkomst som en del av o1-preview versionen. |
Stöd för API och funktioner
| Funktionalitet | 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 |
|---|---|---|---|---|---|
| API-version | v1 | v1 | v1 | v1 | v1 |
| Utvecklarmeddelanden | ✅ | ✅ | ✅ | ✅ | ✅ |
| Strukturerade utdata | ✅ | ✅ | ✅ | ✅ | ✅ |
| Kontextfönster | 400,000 Indata: 272 000 Utdata: 128 000 |
400,000 Indata: 272 000 Utdata: 128 000 |
400,000 Indata: 272 000 Utdata: 128 000 |
400,000 Indata: 272 000 Utdata: 128 000 |
400,000 Indata: 272 000 Utdata: 128 000 |
| Resonemangsansträngning | - 4 | ✅ | ✅ | ✅ | ✅ |
| Bildinmatning | ✅ | ✅ | ✅ | ✅ | ✅ |
| API för chattens slutförande | - | - | ✅ | ✅ | ✅ |
| API för svar | ✅ | ✅ | ✅ | ✅ | ✅ |
| Funktioner/verktyg | ✅ | ✅ | ✅ | ✅ | ✅ |
| Parallellaverktygsanrop 1 | - | ✅ | ✅ | ✅ | ✅ |
max_completion_tokens
2 |
- | - | ✅ | ✅ | ✅ |
| Systemmeddelanden 3 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Sammanfattning av resonemang | ✅ | ✅ | ✅ | ✅ | ✅ |
| Strömmande | - | ✅ | ✅ | ✅ | ✅ |
1 Parallella verktygsanrop stöds inte när reasoning_effort är inställt på minimal
2 Resonemangsmodeller fungerar bara med parametern max_completion_tokens när du använder API:et för chattslutsättningar. Använd max_output_tokens med svars-API:et.
3 De senaste resonemangsmodellerna stöder systemmeddelanden för att underlätta migreringen. Du bör inte använda både ett utvecklarmeddelande och ett systemmeddelande i samma API-begäran.
4gpt-5-pro stöder reasoning_efforthighbara , detta är standardvärdet även när det inte uttryckligen skickas till modellen.
NYA GPT-5-resonemangsfunktioner
| Egenskap | Beskrivning |
|---|---|
reasoning_effort |
minimal stöds nu med GPT-5-seriens resonemangsmodeller* Alternativ: minimal, low, medium, high |
verbosity |
En ny parameter som ger mer detaljerad kontroll över hur koncisa modellens utdata blir. Alternativ: low, medium, high. |
preamble |
GPT-5-seriens resonemangsmodeller har möjlighet att ägna extra tid åt att "tänka" innan ett funktions-/verktygsanrop körs. När den här planeringen sker kan modellen ge insikt i planeringsstegen i modellsvaret via ett nytt objekt som kallas objektet preamble .Generering av ingresser i modellsvaret garanteras inte även om du kan uppmuntra modellen genom att använda parametern instructions och skicka innehåll som "Du MÅSTE planera mycket före varje funktionsanrop. SKICKA ALLTID ut planen till användaren innan du anropar någon funktion" |
| tillåtna verktyg | Du kan ange flera verktyg under tool_choice i stället för bara ett. |
| anpassad verktygstyp | Aktiverar råtextutdata (icke-json) |
lark_tool |
Gör att du kan använda några av funktionerna i Python-lärka för mer flexibel begränsning av modellsvar |
*
gpt-5-codex stöder inte reasoning_effort minimalt.
För mer information rekommenderar vi också att du läser OpenAI:s GPT-5-prompt kokboksguide samt deras GPT-5-funktionsguide.
Anmärkning
- För att undvika timeoutar är bakgrundsläge rekommenderat för
o3-pro. -
o3-prostöder för närvarande inte avbildningsgenerering.
Stöds inte
Följande stöds för närvarande inte med resonemangsmodeller:
-
temperature,top_p,presence_penalty,frequency_penalty,logprobs, ,top_logprobs, ,logit_biasmax_tokens
Användning
Dessa modeller stöder för närvarande inte samma uppsättning parametrar som andra modeller som använder API:et för chattavslut.
Du kan behöva uppgradera din version av OpenAI Python-biblioteket för att dra nytta av de nya parametrarna som max_completion_tokens.
pip install openai --upgrade
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
)
response = client.chat.completions.create(
model="gpt-5-mini", # replace with the model deployment name of your o1 deployment.
messages=[
{"role": "user", "content": "What steps should I think about when writing my first Python API?"},
],
max_completion_tokens = 5000
)
print(response.model_dump_json(indent=2))
Python-resultat:
{
"id": "chatcmpl-AEj7pKFoiTqDPHuxOcirA9KIvf3yz",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"message": {
"content": "Writing your first Python API is an exciting step in developing software that can communicate with other applications. An API (Application Programming Interface) allows different software systems to interact with each other, enabling data exchange and functionality sharing. Here are the steps you should consider when creating your first Python API...truncated for brevity.",
"refusal": null,
"role": "assistant",
"function_call": null,
"tool_calls": null
},
"content_filter_results": {
"hate": {
"filtered": false,
"severity": "safe"
},
"protected_material_code": {
"filtered": false,
"detected": false
},
"protected_material_text": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
],
"created": 1728073417,
"model": "o1-2024-12-17",
"object": "chat.completion",
"service_tier": null,
"system_fingerprint": "fp_503a95a7d8",
"usage": {
"completion_tokens": 1843,
"prompt_tokens": 20,
"total_tokens": 1863,
"completion_tokens_details": {
"audio_tokens": null,
"reasoning_tokens": 448
},
"prompt_tokens_details": {
"audio_tokens": null,
"cached_tokens": 0
}
},
"prompt_filter_results": [
{
"prompt_index": 0,
"content_filter_results": {
"custom_blocklists": {
"filtered": false
},
"hate": {
"filtered": false,
"severity": "safe"
},
"jailbreak": {
"filtered": false,
"detected": false
},
"self_harm": {
"filtered": false,
"severity": "safe"
},
"sexual": {
"filtered": false,
"severity": "safe"
},
"violence": {
"filtered": false,
"severity": "safe"
}
}
}
]
}
Resonemangsarbete
Anmärkning
Resonemangsmodeller har reasoning_tokens som en del av completion_tokens_details i modellsvaret. Det här är dolda token som inte returneras som en del av meddelandets svarsinnehåll, men som används av modellen för att generera ett slutligt svar på din begäran.
reasoning_effort kan anges till low, mediumeller high för alla resonemangsmodeller utom o1-mini. GPT-5-resonemangsmodeller stöder en ny reasoning_effort inställning av minimal. Ju högre ansträngningsinställning desto längre tid lägger modellen på att bearbeta begäran, vilket i allmänhet resulterar i ett större antal reasoning_tokens.
Utvecklarmeddelanden
Funktionella utvecklarmeddelanden "role": "developer" är samma som systemmeddelanden.
Om du lägger till ett utvecklarmeddelande i föregående kodexempel ser det ut så här:
Du kan behöva uppgradera din version av OpenAI Python-biblioteket för att dra nytta av de nya parametrarna som max_completion_tokens.
pip install openai --upgrade
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
base_url="https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",
)
response = client.chat.completions.create(
model="gpt-5-mini", # replace with the model deployment name of your o1 deployment.
messages=[
{"role": "developer","content": "You are a helpful assistant."}, # optional equivalent to a system message for reasoning models
{"role": "user", "content": "What steps should I think about when writing my first Python API?"},
],
max_completion_tokens = 5000,
reasoning_effort = "medium" # low, medium, or high
)
print(response.model_dump_json(indent=2))
Sammanfattning av resonemang
När du använder de senaste resonemangsmodellerna med svars-API :et kan du använda sammanfattningsparametern för att ta emot sammanfattningar av modellens tankekedja.
Viktigt!
Försök att extrahera råa resonemang via andra metoder än sammanfattningsparametern för resonemang stöds inte, kan bryta mot policyn för godtagbar användning och kan leda till begränsning eller avstängning när den identifieras.
Du måste uppgradera OpenAI-klientbiblioteket för åtkomst till de senaste parametrarna.
pip install openai --upgrade
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(
input="Tell me about the curious case of neural text degeneration",
model="gpt-5", # replace with model deployment name
reasoning={
"effort": "medium",
"summary": "auto" # auto, concise, or detailed, gpt-5 series do not support concise
},
text={
"verbosity": "low" # New with GPT-5 models
}
)
print(response.model_dump_json(indent=2))
{
"id": "resp_689a0a3090808190b418acf12b5cc40e0fc1c31bc69d8719",
"created_at": 1754925616.0,
"error": null,
"incomplete_details": null,
"instructions": null,
"metadata": {},
"model": "gpt-5",
"object": "response",
"output": [
{
"id": "rs_689a0a329298819095d90c34dc9b80db0fc1c31bc69d8719",
"summary": [],
"type": "reasoning",
"encrypted_content": null,
"status": null
},
{
"id": "msg_689a0a33009881909fe0fcf57cba30200fc1c31bc69d8719",
"content": [
{
"annotations": [],
"text": "Neural text degeneration refers to the ways language models produce low-quality, repetitive, or vacuous text, especially when generating long outputs. It’s “curious” because models trained to imitate fluent text can still spiral into unnatural patterns. Key aspects:\n\n- Repetition and loops: The model repeats phrases or sentences (“I’m sorry, but...”), often due to high-confidence tokens reinforcing themselves.\n- Loss of specificity: Vague, generic, agreeable text that avoids concrete details.\n- Drift and contradiction: The output gradually departs from context or contradicts itself over long spans.\n- Exposure bias: During training, models see gold-standard prefixes; at inference, they must condition on their own imperfect outputs, compounding errors.\n- Likelihood vs. quality mismatch: Maximizing token-level likelihood doesn’t align with human preferences for diversity, coherence, or factuality.\n- Token over-optimization: Frequent, safe tokens get overused; certain phrases become attractors.\n- Entropy collapse: With greedy or low-temperature decoding, the distribution narrows too much, causing repetitive, low-entropy text.\n- Length and beam search issues: Larger beams or long generations can favor bland, repetitive sequences (the “likelihood trap”).\n\nCommon mitigations:\n\n- Decoding strategies:\n - Top-k, nucleus (top-p), or temperature sampling to keep sufficient entropy.\n - Typical sampling and locally typical sampling to avoid dull but high-probability tokens.\n - Repetition penalties, presence/frequency penalties, no-repeat n-grams.\n - Contrastive decoding (and variants like DoLa) to filter generic continuations.\n - Min/max length, stop sequences, and beam search with diversity/penalties.\n\n- Training and alignment:\n - RLHF/DPO to better match human preferences for non-repetitive, helpful text.\n - Supervised fine-tuning on high-quality, diverse data; instruction tuning.\n - Debiasing objectives (unlikelihood training) to penalize repetition and banned patterns.\n - Mixture-of-denoisers or latent planning to improve long-range coherence.\n\n- Architectural and planning aids:\n - Retrieval-augmented generation to ground outputs.\n - Tool use and structured prompting to constrain drift.\n - Memory and planning modules, hierarchical decoding, or sentence-level control.\n\n- Prompting tips:\n - Ask for concise answers, set token limits, and specify structure.\n - Provide concrete constraints or content to reduce generic filler.\n - Use “say nothing if uncertain” style instructions to avoid vacuity.\n\nRepresentative papers/terms to search:\n- Holtzman et al., “The Curious Case of Neural Text Degeneration” (2020): nucleus sampling.\n- Welleck et al., “Neural Text Degeneration with Unlikelihood Training.”\n- Li et al., “A Contrastive Framework for Decoding.”\n- Su et al., “DoLa: Decoding by Contrasting Layers.”\n- Meister et al., “Typical Decoding.”\n- Ouyang et al., “Training language models to follow instructions with human feedback.”\n\nIn short, degeneration arises from a mismatch between next-token likelihood and human preferences plus decoding choices; careful decoding, training objectives, and grounding help prevent it.",
"type": "output_text",
"logprobs": null
}
],
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"temperature": 1.0,
"tool_choice": "auto",
"tools": [],
"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": "minimal",
"generate_summary": null,
"summary": "detailed"
},
"safety_identifier": null,
"service_tier": "default",
"status": "completed",
"text": {
"format": {
"type": "text"
}
},
"top_logprobs": null,
"truncation": "disabled",
"usage": {
"input_tokens": 16,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 657,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 673
},
"user": null,
"content_filters": null,
"store": true
}
Anmärkning
Även när det är aktiverat genereras inte resonemangssammanfattningar för varje steg/begäran. Detta är ett förväntat beteende.
Python-lärka
GPT-5-seriens resonemangsmodeller har möjlighet att anropa en ny custom_tool som heter lark_tool. Det här verktyget är baserat på Python-lärka och kan användas för mer flexibel begränsning av modellutdata.
API för svar
{
"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"
}
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))
Utdata:
{
"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
}
Chatten har slutförts
{
"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"
}
Markdown-utdata
Som standard kommer o3-mini och o1 modellerna inte försöka skapa utdata som innehåller markdown-formatering. Ett vanligt användningsfall där det här beteendet är oönskat är när du vill att modellen ska mata ut kod som finns i ett markdown-kodblock. När modellen genererar utdata utan markdown-formatering förlorar du funktioner som syntaxmarkering och kopierbara kodblock i interaktiva lekplatsupplevelser. Om du vill åsidosätta det här nya standardbeteendet och uppmuntra markdown-inkludering i modellsvar lägger du till strängen Formatting re-enabled i början av utvecklarmeddelandet.
Att lägga Formatting re-enabled till i början av utvecklarmeddelandet garanterar inte att modellen kommer att innehålla markdown-formatering i sitt svar, det ökar bara sannolikheten. Vi har upptäckt från interna tester som Formatting re-enabled är mindre effektiva av sig själv med o1 modellen än med o3-mini.
För att förbättra prestandan Formatting re-enabled kan du ytterligare utöka början av utvecklarmeddelandet, vilket ofta resulterar i önskade utdata. I stället för att bara lägga Formatting re-enabled till i början av utvecklarmeddelandet kan du experimentera med att lägga till en mer beskrivande inledande instruktion som ett av exemplen nedan:
Formatting re-enabled - please enclose code blocks with appropriate markdown tags.Formatting re-enabled - code output should be wrapped in markdown.
Beroende på dina förväntade utdata kan du behöva anpassa ditt första utvecklarmeddelande ytterligare för att rikta in dig på ditt specifika användningsfall.