Delen via


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, o1en en o1-previewregistratie is vereist en wordt toegang verleend op basis van de geschiktheidscriteria van Microsoft.

Klanten die eerder toegang hebben toegepast en toegang o1o1-previewhebben 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-minio1 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_ppresence_penalty, frequency_penalty, , logprobs, , top_logprobslogit_biasmax_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, mediumof 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.