Delen via


Azure OpenAI-redeneringsmodellen

Azure OpenAI o1 en o1-mini modellen 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.

Belangrijkste mogelijkheden van de o1-serie:

  • 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

De o1-seriemodellen zijn nu beschikbaar voor API-toegang en modelimplementatie. Registratie is vereist en toegang wordt verleend op basis van de geschiktheidscriteria van Microsoft. Klanten die eerder toegang hebben toegepast en toegang o1-previewhebben gekregen, hoeven niet opnieuw toe te passen omdat ze automatisch op de wachtlijst staan voor het nieuwste model.

Toegang aanvragen: beperkte toegangsmodeltoepassing

Zodra toegang is verleend, moet u voor elk model een implementatie maken. Als u een bestaande o1-preview implementatie hebt, wordt een in-place upgrade momenteel niet ondersteund, moet u een nieuwe implementatie maken.

Regionale beschikbaarheid

Modelleren Regio
o1 VS - oost 2 (Global Standard)
Zweden - centraal (Global Standard)
o1-preview Zie de pagina Modellen.
o1-mini Zie de pagina Modellen.

API en functieondersteuning

Functie o1, 2024-12-17 o1-preview, 2024-09-12 o1-mini, 2024-09-12
API-versie 2024-12-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: 128.000
Uitvoer: 32.768
Invoer: 128.000
Uitvoer: 65.536
Redeneringsinspanning - -
Systeemberichten - - -
Functies/hulpprogramma's - -
max_completion_tokens

o1-seriemodellen werken alleen met de max_completion_tokens parameter.

Belangrijk

Er is een bekend probleem met het o1 model en de tool_choice parameter. Op dit moment mislukken functie-aanroepen die de optionele tool_choice parameter bevatten. Deze pagina wordt bijgewerkt zodra het probleem is opgelost.

Niet ondersteund

De volgende modellen worden momenteel niet ondersteund met modellen uit de o1-serie:

  • Systeemberichten
  • Streaming
  • 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.

  • Systeemberichten worden niet ondersteund met de o1-serie redeneringsmodellen.
  • o1-2024-12-17 met API-versie: 2024-12-01-preview en voegt later ondersteuning toe voor ontwikkelaarsberichten.

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))