Model penalaran Azure OpenAI
Model Azure OpenAI o-series
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 seri o:
- 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 halang.
- Instruksi Mengikuti dan Manajemen Alur Kerja: Sangat efektif untuk mengelola alur kerja yang membutuhkan konteks yang lebih pendek.
Ketersediaan
Untuk akses ke o3-mini
, o1
, dan o1-preview
, pendaftaran diperlukan, dan akses akan diberikan berdasarkan kriteria kelayakan Microsoft.
Pelanggan yang sebelumnya menerapkan dan menerima akses ke o1
atau o1-preview
, tidak perlu menerapkan kembali karena mereka secara otomatis berada di daftar tunggu untuk model terbaru.
Meminta akses: aplikasi model akses terbatas
Ketersediaan wilayah
Model | Wilayah | Akses terbatas |
---|---|---|
o3-mini |
Ketersediaan model. | Aplikasi model akses terbatas |
o1 |
Ketersediaan model. | Aplikasi model akses terbatas |
o1-preview |
Ketersediaan model. | Model ini hanya tersedia untuk pelanggan yang diberikan akses sebagai bagian dari rilis akses terbatas asli. Saat ini kami tidak memperluas akses ke o1-preview . |
o1-mini |
Ketersediaan model. | Tidak ada permintaan akses yang diperlukan untuk penyebaran Standar Global. Penyebaran standar (regional) saat ini hanya tersedia untuk memilih pelanggan yang sebelumnya diberikan akses sebagai bagian o1-preview dari rilis. |
API & dukungan fitur
Fitur | o3-mini, 2025-01-31 | o1, 2024-12-17 | o1-preview, 2024-09-12 | o1-mini, 2024-09-12 |
---|---|---|---|---|
Versi API | 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 |
Pesan Pengembang | ✅ | ✅ | - | - |
Output Terstruktur | ✅ | ✅ | - | - |
Jendela Konteks | Input: 200.000 Output: 100.000 |
Input: 200.000 Output: 100.000 |
Input: 128.000 Output: 32.768 |
Input: 128.000 Output: 65.536 |
Upaya penalaran | ✅ | ✅ | - | - |
Dukungan Visi | - | ✅ | - | - |
Fungsi/Alat | ✅ | ✅ | - | - |
max_completion_tokens * |
✅ | ✅ | ✅ | ✅ |
Pesan Sistem** | ✅ | ✅ | - | - |
Streaming | ✅ | - | - | - |
* Model penalaran hanya akan berfungsi dengan max_completion_tokens
parameter .
**Model seri o* terbaru mendukung pesan sistem untuk mempermudah migrasi. Ketika Anda menggunakan pesan sistem dengan o3-mini
dan o1
itu akan diperlakukan sebagai pesan pengembang. Anda tidak boleh menggunakan pesan pengembang dan pesan sistem dalam permintaan API yang sama.
Tidak Didukung
Berikut ini saat ini tidak didukung dengan model penalaran:
- Panggilan alat paralel
-
temperature
, ,presence_penalty
top_p
,frequency_penalty
,logprobs
,top_logprobs
, ,logit_bias
,max_tokens
Penggunaan
Model ini saat ini tidak mendukung serangkaian parameter yang sama dengan model lain yang menggunakan API penyelesaian obrolan.
Anda harus meningkatkan pustaka klien OpenAI Anda untuk akses ke parameter terbaru.
pip install openai --upgrade
Jika Anda baru menggunakan ID Microsoft Entra untuk autentikasi, lihat Cara mengonfigurasi Layanan Azure OpenAI dengan autentikasi ID Microsoft Entra.
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))
Output:
{
"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"
}
}
}
]
}
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.
2024-12-01-preview
menambahkan parameter reasoning_effort
baru tambahan yang dapat diatur ke low
, medium
, atau high
dengan model terbaru o1
. 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:
Anda harus meningkatkan pustaka klien OpenAI Anda untuk akses ke parameter terbaru.
pip install openai --upgrade
Jika Anda baru menggunakan ID Microsoft Entra untuk autentikasi, lihat Cara mengonfigurasi Layanan Azure OpenAI dengan autentikasi ID Microsoft Entra.
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))
Output 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, Anda kehilangan fitur seperti penyorotan sintaks, dan blok kode yang dapat disalin dalam pengalaman playground interaktif. 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 yang Formatting re-enabled
kurang efektif dengan sendirinya o1
dengan model daripada 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.