Azure OpenAI-redeneringsmodellen
Azure OpenAI-modellen o-series
zijn ontworpen om redenerings- en probleemoplossingstaken aan te pakken met meer focus en mogelijkheden. Deze modellen besteden meer tijd aan het verwerken en begrijpen van de aanvraag van de gebruiker, waardoor ze uitzonderlijk sterk zijn op gebieden als wetenschap, codering en wiskunde in vergelijking met eerdere iteraties.
Belangrijke mogelijkheden van de o-seriemodellen:
- Complexe codegeneratie: geschikt voor het genereren van algoritmen en het verwerken van geavanceerde coderingstaken ter ondersteuning van ontwikkelaars.
- Geavanceerde probleemoplossing: ideaal voor uitgebreide brainstormsessies en het aanpakken van uitdagingen met meerdere facetten.
- Complexe documentvergelijking: perfect voor het analyseren van contracten, casebestanden of juridische documenten om subtiele verschillen te identificeren.
- Instructies volgen en werkstroombeheer: met name effectief voor het beheren van werkstromen waarvoor kortere contexten nodig zijn.
Beschikbaarheid
Voor toegang tot o3-mini
, o1
en en o1-preview
registratie is vereist en wordt toegang verleend op basis van de geschiktheidscriteria van Microsoft.
Klanten die eerder toegang hebben toegepast en toegang o1
o1-preview
hebben gekregen, hoeven niet opnieuw toe te passen omdat ze automatisch op de wachtlijst staan voor het nieuwste model.
Toegang aanvragen: beperkte toegangsmodeltoepassing
Regionale beschikbaarheid
Modelleren | Regio | Beperkte toegang |
---|---|---|
o3-mini |
Beschikbaarheid van modellen. | Beperkte toegangsmodeltoepassing |
o1 |
Beschikbaarheid van modellen. | Beperkte toegangsmodeltoepassing |
o1-preview |
Beschikbaarheid van modellen. | Dit model is alleen beschikbaar voor klanten die toegang hebben gekregen als onderdeel van de oorspronkelijke beperkte toegangsrelease. De toegang tot o1-preview . |
o1-mini |
Beschikbaarheid van modellen. | Er is geen toegangsaanvraag nodig voor Global Standard-implementaties. Standaardimplementaties (regionaal) zijn momenteel alleen beschikbaar om klanten te selecteren die eerder toegang hebben gekregen als onderdeel van de o1-preview release. |
API en functieondersteuning
Functie | o3-mini, 2025-01-31 | o1, 2024-12-17 | o1-preview, 2024-09-12 | o1-mini, 2024-09-12 |
---|---|---|---|---|
API-versie | 2024-12-01-preview 2025-01-01-preview |
2024-12-01-preview 2025-01-01-preview |
2024-09-01-preview 2024-10-01-preview 2024-12-01-preview |
2024-09-01-preview 2024-10-01-preview 2024-12-01-preview |
Berichten voor ontwikkelaars | ✅ | ✅ | - | - |
Gestructureerde uitvoer | ✅ | ✅ | - | - |
Contextvenster | Invoer: 200.000 Uitvoer: 100.000 |
Invoer: 200.000 Uitvoer: 100.000 |
Invoer: 128.000 Uitvoer: 32.768 |
Invoer: 128.000 Uitvoer: 65.536 |
Redeneringsinspanning | ✅ | ✅ | - | - |
Vision-ondersteuning | - | ✅ | - | - |
Functies/hulpprogramma's | ✅ | ✅ | - | - |
max_completion_tokens * |
✅ | ✅ | ✅ | ✅ |
Systeemberichten** | ✅ | ✅ | - | - |
Streaming | ✅ | - | - | - |
* Redeneringsmodellen werken alleen met de max_completion_tokens
parameter.
**Het nieuwste o-seriemodel* biedt ondersteuning voor systeemberichten om de migratie eenvoudiger te maken. Wanneer u een systeembericht gebruikt en o3-mini
o1
het wordt behandeld als een ontwikkelaarsbericht. Gebruik niet zowel een ontwikkelaarsbericht als een systeembericht in dezelfde API-aanvraag.
Niet ondersteund
Het volgende wordt momenteel niet ondersteund met redeneringsmodellen:
- Parallel aanroepen van hulpprogramma's
-
temperature
, ,top_p
presence_penalty
,frequency_penalty
, ,logprobs
, ,top_logprobs
logit_bias
max_tokens
Gebruik
Deze modellen ondersteunen momenteel niet dezelfde set parameters als andere modellen die gebruikmaken van de API voor het voltooien van chats.
U moet uw OpenAI-clientbibliotheek upgraden voor toegang tot de meest recente parameters.
pip install openai --upgrade
Als u geen toegang hebt tot Microsoft Entra ID voor verificatie, raadpleegt u Azure OpenAI-service configureren met Microsoft Entra ID-verificatie.
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
azure_ad_token_provider=token_provider,
api_version="2024-12-01-preview"
)
response = client.chat.completions.create(
model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
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))
Uitvoer:
{
"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"
}
}
}
]
}
Redeneringsinspanning
Notitie
Redeneringsmodellen maken reasoning_tokens
deel uit van completion_tokens_details
het modelantwoord. Dit zijn verborgen tokens die niet worden geretourneerd als onderdeel van de inhoud van het berichtantwoord, maar worden door het model gebruikt om een definitief antwoord op uw aanvraag te genereren.
2024-12-01-preview
voegt een extra nieuwe parameter reasoning_effort
toe die kan worden ingesteld op low
, medium
of high
met het nieuwste o1
model. Hoe hoger de inspanningsinstelling, hoe langer het model de aanvraag verwerkt, wat meestal resulteert in een groter aantal reasoning_tokens
.
Berichten voor ontwikkelaars
Functioneel ontwikkelaarsberichten "role": "developer"
zijn hetzelfde als systeemberichten.
Het toevoegen van een ontwikkelaarsbericht aan het vorige codevoorbeeld ziet er als volgt uit:
U moet uw OpenAI-clientbibliotheek upgraden voor toegang tot de meest recente parameters.
pip install openai --upgrade
Als u geen toegang hebt tot Microsoft Entra ID voor verificatie, raadpleegt u Azure OpenAI-service configureren met Microsoft Entra ID-verificatie.
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
azure_ad_token_provider=token_provider,
api_version="2024-12-01-preview"
)
response = client.chat.completions.create(
model="o1-new", # replace with the model deployment name of your o1-preview, or o1-mini model
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
)
print(response.model_dump_json(indent=2))
Markdown-uitvoer
Standaard proberen de o3-mini
modellen o1
geen uitvoer te produceren die markdown-opmaak bevat. Een veelvoorkomend gebruiksscenario waarbij dit gedrag ongewenst is, is wanneer u wilt dat het model code uitvoert die zich in een Markdown-codeblok bevindt. Wanneer het model uitvoer genereert zonder markdown-opmaak, verliest u functies zoals het markeren van syntaxis en kopieerbare codeblokken in interactieve speeltuinervaringen. Als u dit nieuwe standaardgedrag wilt overschrijven en markdown-opname in modelantwoorden wilt aanmoedigen, voegt u de tekenreeks Formatting re-enabled
toe aan het begin van uw ontwikkelaarsbericht.
Als Formatting re-enabled
u toevoegt aan het begin van uw ontwikkelaarsbericht, wordt niet gegarandeerd dat het model markdown-opmaak in het antwoord bevat. Hierdoor wordt alleen de kans vergroot. We hebben vastgesteld dat interne tests Formatting re-enabled
minder effectief zijn met het o1
model dan met o3-mini
.
Om de prestaties van Formatting re-enabled
u te verbeteren, kunt u het begin van het bericht voor ontwikkelaars verder uitbreiden, wat vaak resulteert in de gewenste uitvoer. In plaats van alleen maar toe te voegen Formatting re-enabled
aan het begin van uw ontwikkelaarsbericht, kunt u experimenteren met het toevoegen van een meer beschrijvende initiële instructie, zoals een van de onderstaande voorbeelden:
Formatting re-enabled - please enclose code blocks with appropriate markdown tags.
Formatting re-enabled - code output should be wrapped in markdown.
Afhankelijk van de verwachte uitvoer moet u mogelijk uw eerste ontwikkelaarsbericht verder aanpassen om uw specifieke use-case te richten.