Model penalaran Azure OpenAI (klasik)

Sedang menampilkan:Versi - Beralih ke versi untuk portal Foundry baru

Azure model penalaran OpenAI dirancang untuk mengatasi tugas penalaran dan pemecahan masalah dengan peningkatan fokus dan kemampuan. Model-model ini menghabiskan lebih banyak waktu untuk memproses dan memahami permintaan pengguna, membuatnya sangat kuat di bidang-bidang seperti sains, pengodean, dan matematika dibandingkan dengan iterasi sebelumnya.

Kemampuan utama model penalaran:

  • Pembuatan Kode Kompleks: Mampu menghasilkan algoritma dan menangani tugas pengkodean tingkat lanjut untuk mendukung pengembang.
  • Pemecahan Masalah Tingkat Lanjut: Ideal untuk sesi curah otak yang komprehensif dan mengatasi tantangan multifaktor.
  • Perbandingan Dokumen Kompleks: Sempurna untuk menganalisis kontrak, file kasus, atau dokumen hukum untuk mengidentifikasi perbedaan yang halus.
  • Instruksi Mengikuti dan Manajemen Alur Kerja: Sangat efektif untuk mengelola alur kerja yang membutuhkan konteks yang lebih pendek.

Prasyarat

  • Model alasan OpenAI Azure telah diterapkan.

  • Jika Anda menggunakan contoh REST:

    • Pasang Azure CLI. Untuk informasi selengkapnya, lihat Install Azure CLI.

    • Masuk dengan az login, lalu buat token pembawa dan simpan dalam AZURE_OPENAI_AUTH_TOKEN variabel lingkungan.

      az account get-access-token --resource https://cognitiveservices.azure.com --query accessToken -o tsv
      

Penggunaan

Model ini saat ini tidak mendukung serangkaian parameter yang sama dengan model lain yang menggunakan API penyelesaian obrolan.

API penyelesaian obrolan lengkap

using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;

#pragma warning disable OPENAI001 //currently required for token based authentication

BearerTokenPolicy tokenPolicy = new(
    new DefaultAzureCredential(),
    "https://ai.azure.com/.default");

ChatClient client = new(
    model: "o4-mini",
    authenticationPolicy: tokenPolicy,
    options: new OpenAIClientOptions()
    {

        Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
    }
);

ChatCompletionOptions options = new ChatCompletionOptions
{
    MaxOutputTokenCount = 100000
};

ChatCompletion completion = client.CompleteChat(
         new DeveloperChatMessage("You are a helpful assistant"),
         new UserChatMessage("Tell me about the bitter lesson")
    );

Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");

Upaya penalaran

Catatan

Model penalaran memiliki reasoning_tokens sebagai bagian completion_tokens_details dari dalam respons model. Ini adalah token tersembunyi yang tidak dikembalikan sebagai bagian dari konten respons pesan tetapi digunakan oleh model untuk membantu menghasilkan jawaban akhir atas permintaan Anda. reasoning_effortdapat diatur ke low, , atau medium untuk semua model penalaran kecuali higho1-mini. Semakin tinggi pengaturan upaya, semakin lama model akan menghabiskan pemrosesan permintaan, yang umumnya akan menghasilkan jumlah yang lebih besar dari reasoning_tokens.

Pesan pengembang

Pesan pengembang ("role": "developer") secara fungsional sama dengan pesan sistem.

Menambahkan pesan pengembang ke contoh kode sebelumnya akan terlihat sebagai berikut:


using Azure.Identity;
using OpenAI;
using OpenAI.Chat;
using System.ClientModel.Primitives;

#pragma warning disable OPENAI001 //currently required for token based authentication

BearerTokenPolicy tokenPolicy = new(
    new DefaultAzureCredential(),
    "https://ai.azure.com/.default");

ChatClient client = new(
    model: "o4-mini",
    authenticationPolicy: tokenPolicy,
    options: new OpenAIClientOptions()
    {

        Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
    }
);

ChatCompletionOptions options = new ChatCompletionOptions
{
    ReasoningEffortLevel = ChatReasoningEffortLevel.Low,
    MaxOutputTokenCount = 100000
};

ChatCompletion completion = client.CompleteChat(
         new DeveloperChatMessage("You are a helpful assistant"),
         new UserChatMessage("Tell me about the bitter lesson")
    );

Console.WriteLine($"[ASSISTANT]: {completion.Content[0].Text}");

Ringkasan penalaran

Saat menggunakan model penalaran terbaru dengan API Respons , Anda dapat menggunakan parameter ringkasan penalaran untuk menerima ringkasan rantai pemikiran model.

Penting

Mencoba mengekstrak penalaran mentah melalui metode selain parameter ringkasan penalaran tidak didukung, dapat melanggar Kebijakan Penggunaan yang Dapat Diterima, dan dapat mengakibatkan pembatasan atau penangguhan saat terdeteksi.

using OpenAI;
using OpenAI.Responses;
using System.ClientModel.Primitives;
using Azure.Identity;

#pragma warning disable OPENAI001 //currently required for token based authentication

BearerTokenPolicy tokenPolicy = new(
    new DefaultAzureCredential(),
    "https://ai.azure.com/.default");

OpenAIResponseClient client = new(
    model: "o4-mini",
    authenticationPolicy: tokenPolicy,
    options: new OpenAIClientOptions()
    {
        Endpoint = new Uri("https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1")
    }
);

OpenAIResponse response = await client.CreateResponseAsync(
    userInputText: "What's the optimal strategy to win at poker?",
    new ResponseCreationOptions()
    {
        ReasoningOptions = new ResponseReasoningOptions()
        {
            ReasoningEffortLevel = ResponseReasoningEffortLevel.High,
            ReasoningSummaryVerbosity = ResponseReasoningSummaryVerbosity.Auto,
        },
    });

// Get the reasoning summary from the first OutputItem (ReasoningResponseItem)
Console.WriteLine("=== Reasoning Summary ===");
foreach (var item in response.OutputItems)
{
    if (item is ReasoningResponseItem reasoningItem)
    {
        foreach (var summaryPart in reasoningItem.SummaryParts)
        {
            if (summaryPart is ReasoningSummaryTextPart textPart)
            {
                Console.WriteLine(textPart.Text);
            }
        }
    }
}

Console.WriteLine("\n=== Assistant Response ===");
// Get the assistant's output
Console.WriteLine(response.GetOutputText());

Catatan

Bahkan ketika diaktifkan, ringkasan penalaran tidak dijamin akan dihasilkan untuk setiap langkah/permintaan. Ini adalah perilaku yang diharapkan.

Python burung pipit

Model penalaran seri GPT-5 memiliki kemampuan untuk memanggil yang baru custom_tool yang disebut lark_tool. Alat ini didasarkan pada Python lark dan dapat digunakan untuk batasan output model yang lebih fleksibel.

Respons API

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

Microsoft Entra ID:

from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://ai.azure.com/.default"
)

client = OpenAI(  
  base_url = "https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/",  
  api_key=token_provider,
)

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

Kunci API:

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

Output:

{
  "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<sup>2</sup> = π × 3<sup>2</sup> = 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
}

Penyelesaian Percakapan AI

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

Ketersediaan

Ketersediaan wilayah

Model Wilayah Akses terbatas
gpt-6-astra Ketersediaan model Tidak diperlukan permintaan akses. Permintaan kuota diperlukan tergantung pada tingkat kuota. Langganan Tingkat 5 dan Tingkat 6 memiliki kuota secara default.
gpt-5.6-sol Ketersediaan model Tidak diperlukan permintaan akses. Permintaan kuota diperlukan tergantung pada tingkat kuota. Langganan Tingkat 5 dan Tingkat 6 memiliki kuota secara default.
gpt-5.6-terra Ketersediaan model Tidak diperlukan permintaan akses. Permintaan kuota diperlukan tergantung pada tingkat kuota. Langganan Tingkat 5 dan Tingkat 6 memiliki kuota secara default.
gpt-5.6-luna Ketersediaan model Tidak diperlukan permintaan akses. Permintaan kuota diperlukan tergantung pada tingkat kuota. Langganan Tingkat 5 dan Tingkat 6 memiliki kuota secara default.
gpt-chat-latest Ketersediaan model Tidak diperlukan permintaan akses.
gpt-5.5 Ketersediaan model Tidak diperlukan permintaan akses. Permintaan kuota diperlukan tergantung pada tingkat kuota. Langganan Tingkat 5 dan Tingkat 6 memiliki kuota secara default.
gpt-5.4-mini Standar Global:
US Timur2
Swedia Tengah
US Tengah Selatan
Polandia Tengah
Tidak diperlukan permintaan akses.
gpt-5.4-nano Standar Global:
US Timur2
Swedia Tengah
US Tengah Selatan
Polandia Tengah

Standar Datazone:
US Timur2
US Tengah Selatan
Tidak diperlukan permintaan akses.
gpt-5.4-pro Ketersediaan model Meminta akses: Aplikasi model akses terbatas. Jika Anda sudah memiliki akses ke model akses terbatas, tidak diperlukan permintaan.
gpt-5.4 Ketersediaan model Meminta akses: Aplikasi model akses terbatas. Jika Anda sudah memiliki akses ke model akses terbatas, tidak diperlukan permintaan.
gpt-5.3-codex Ketersediaan model Meminta akses: Aplikasi model akses terbatas. Jika Anda sudah memiliki akses ke model akses terbatas, tidak diperlukan permintaan.
gpt-5.2-codex Ketersediaan model Meminta akses: Aplikasi model akses terbatas. Jika Anda sudah memiliki akses ke model akses terbatas, tidak diperlukan permintaan.
gpt-5.2 Ketersediaan model Meminta akses: Aplikasi model akses terbatas. Jika Anda sudah memiliki akses ke model akses terbatas, tidak diperlukan permintaan.
gpt-5.1-codex-max Ketersediaan model Akses tidak lagi dibatasi untuk model ini.
gpt-5.1 Ketersediaan model Akses tidak lagi dibatasi untuk model ini.
gpt-5.1-chat Ketersediaan model Tidak diperlukan permintaan akses.
gpt-5.1-codex Ketersediaan model Akses tidak lagi dibatasi untuk model ini.
gpt-5.1-codex-mini Ketersediaan model Tidak diperlukan permintaan akses.
gpt-5-pro Ketersediaan model Akses tidak lagi dibatasi untuk model ini.
gpt-5-codex Ketersediaan model Akses tidak lagi dibatasi untuk model ini.
gpt-5 Ketersediaan model Akses tidak lagi dibatasi untuk model ini.
gpt-5-mini Ketersediaan model Tidak diperlukan permintaan akses.
gpt-5-nano Ketersediaan model Tidak diperlukan permintaan akses.
o3-pro Ketersediaan model Meminta akses: Aplikasi model akses terbatas. Jika Anda sudah memiliki akses ke model akses terbatas, tidak diperlukan permintaan.
codex-mini Ketersediaan model Tidak diperlukan permintaan akses.
o4-mini Ketersediaan model Tidak ada permintaan akses yang diperlukan untuk menggunakan kemampuan inti model ini.

Meminta akses: fitur o4-mini untuk ringkasan penalaran
o3 Ketersediaan model Meminta akses: Aplikasi model akses terbatas
o3-mini Ketersediaan model. Akses tidak lagi dibatasi untuk model ini.
o1 Ketersediaan model. Akses tidak lagi dibatasi untuk model ini.

API dan dukungan fitur

Fitur gpt-6-astra, 2026-09-03
Keluaran terstruktur
Jendela konteks 1.050.000 token
Jumlah token input maksimum 922.000 token
Jumlah token output maksimum 128.000 token
Modalitas masukan Teks dan gambar
Modalitas keluaran Text
API Penyelesaian Chat ✅ (tanpa alat)
Respons API
Streaming
Fungsi/alat ✅ (khusus API Responses saja)
Upaya penalaran ✅ (none tidak didukung)
Verbositas
logprobs -
temperature -
top_p -

Azure OpenAI saat ini tidak mendukung perubahan tingkat upaya penalaran di tengah percakapan (configuration_update) atau pengarahan di tengah giliran (response.steer) untuk GPT-6 Astra.

Panggilan alat memerlukan API Respons. Jika Anda menggunakan alat dengan Chat Completions, ikuti panduan migrasi Responses API.

Catatan

  • Untuk menghindari batas waktu, disarankan menggunakan mode latar belakang untuk o3-pro.
  • o3-pro saat ini tidak mendukung pembuatan gambar.

Parameter yang tidak didukung

GPT-6 Astra tidak mendukung nilai temperature atau top_p kustom maupun probabilitas logaritmik (logprobs).

Model penalaran lainnya tidak mendukung parameter berikut:

  • temperature, top_p, presence_penalty, frequency_penalty, logprobs, top_logprobs, logit_bias, max_tokens

Hasil Markdown

Secara default o3-mini model dan o1 tidak akan mencoba menghasilkan output yang menyertakan pemformatan markdown. Kasus penggunaan umum di mana perilaku ini tidak diinginkan adalah ketika Anda ingin model menghasilkan kode yang terkandung dalam blok kode markdown. Saat model menghasilkan output tanpa pemformatan markdown, dalam pengalaman playground interaktif Anda kehilangan fitur seperti penyorotan sintaks dan blok kode yang dapat disalin. Untuk mengambil alih perilaku default baru ini dan mendorong penyertaan markdown dalam respons model, tambahkan string Formatting re-enabled ke awal pesan pengembang Anda.

Formatting re-enabled Menambahkan ke awal pesan pengembang Anda tidak menjamin bahwa model akan menyertakan pemformatan markdown dalam responsnya, itu hanya meningkatkan kemungkinan. Kami telah menemukan dari pengujian internal bahwa Formatting re-enabled kurang efektif dengan sendirinya pada model o1 dibandingkan dengan o3-mini.

Untuk meningkatkan performa Formatting re-enabled Anda dapat menambah lebih lanjut awal pesan pengembang yang akan sering menghasilkan output yang diinginkan. Daripada hanya menambahkan Formatting re-enabled ke awal pesan pengembang, Anda dapat bereksperimen dengan menambahkan instruksi awal yang lebih deskriptif seperti salah satu contoh di bawah ini:

  • Formatting re-enabled - please enclose code blocks with appropriate markdown tags.
  • Formatting re-enabled - code output should be wrapped in markdown.

Bergantung pada output yang diharapkan, Anda mungkin perlu menyesuaikan pesan pengembang awal Anda lebih lanjut untuk menargetkan kasus penggunaan spesifik Anda.