Dela via


Azure OpenAI-resonemangsmodeller

Azure OpenAI o1 och o1-mini modeller ä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 o1-serien:

  • 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.
  • Instruktion efter och arbetsflödeshantering: Särskilt effektivt för att hantera arbetsflöden som kräver kortare kontexter.

Tillgänglighet

Modellerna i o1-serien är nu tillgängliga för API-åtkomst och modelldistribution. Registrering krävs och åtkomst beviljas baserat på Microsofts berättigandekriterier. Kunder som tidigare har tillämpat och fått åtkomst till o1-previewbehöver inte ansöka igen eftersom de automatiskt finns i väntelistan för den senaste modellen.

Begär åtkomst: program för modell för begränsad åtkomst

När åtkomsten har beviljats måste du skapa en distribution för varje modell. Om du har en befintlig o1-preview distribution stöds för närvarande inte uppgradering på plats. Du måste skapa en ny distribution.

Region tillgänglighet

Modell Region
o1 USA, östra 2 (global standard)
Sweden Central (Global Standard)
o1-preview Se sidan Modeller.
o1-mini Se sidan Modeller.

Stöd för API &-funktioner

Funktion o1, 2024-12-17 o1-preview, 2024-09-12 o1-mini, 2024-09-12
API-version 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
Utvecklarmeddelanden - -
Strukturerade utdata - -
Kontextfönster Indata: 200 000
Utdata: 100 000
Indata: 128 000
Utdata: 32 768
Indata: 128 000
Utdata: 65 536
Resonemangsarbete - -
Systemmeddelanden - - -
Funktioner/verktyg - -
max_completion_tokens

o1-seriemodeller fungerar bara med parametern max_completion_tokens .

Viktigt!

Det finns ett känt problem med o1 modellen och parametern tool_choice . För närvarande misslyckas funktionsanrop som innehåller den valfria tool_choice parametern. Den här sidan uppdateras när problemet har lösts.

Stöds inte

Följande stöds för närvarande inte med o1-seriemodeller:

  • Systemmeddelanden
  • Strömning
  • Parallella verktygsanrop
  • temperature, top_p, presence_penalty, frequency_penalty, logprobs, , top_logprobs, , logit_biasmax_tokens

Förbrukning

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 måste uppgradera OpenAI-klientbiblioteket för åtkomst till de senaste parametrarna.

pip install openai --upgrade

Om du inte har använt Microsoft Entra-ID för autentisering tidigare kan du läsa Konfigurera Azure OpenAI-tjänsten med Microsoft Entra-ID-autentisering.

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

Utdata:

{
  "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

Kommentar

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. 2024-12-01-preview lägger till ytterligare en ny parameter reasoning_effort som kan anges till low, mediumeller high med den senaste o1 modellen. 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.

  • Systemmeddelanden stöds inte med o1-seriens resonemangsmodeller.
  • o1-2024-12-17 med API-version: 2024-12-01-preview och lägger senare till stöd för utvecklarmeddelanden.

Om du lägger till ett utvecklarmeddelande i föregående kodexempel ser det ut så här:

Du måste uppgradera OpenAI-klientbiblioteket för åtkomst till de senaste parametrarna.

pip install openai --upgrade

Om du inte har använt Microsoft Entra-ID för autentisering tidigare kan du läsa Konfigurera Azure OpenAI-tjänsten med Microsoft Entra-ID-autentisering.

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