Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK: Pengembang | Dasar | Dasar v2 | Standar | Standar v2 | Premium | Premium v2
Kebijakan ini azure-openai-token-limit mencegah Azure OpenAI dalam lonjakan penggunaan API Model Foundry per kunci dengan membatasi konsumsi token model bahasa ke tarif tertentu (angka per menit), kuota selama periode tertentu, atau keduanya. Ketika batas tarif token yang ditentukan terlampaui, pemanggil menerima 429 Too Many Requests kode status respons. Ketika kuota tertentu terlampaui, pemanggil menerima 403 Forbidden kode status respons.
Dengan mengandalkan metrik penggunaan token yang dikembalikan dari titik akhir Azure OpenAI, kebijakan memantau dan memberlakukan batas berdasarkan konsumsi token aktual. Kebijakan ini juga memungkinkan estimasi token prompt terlebih dahulu oleh API Management, meminimalkan permintaan yang tidak perlu ke backend Azure OpenAI jika batas sudah terlampaui. Namun, karena jumlah token aktual yang digunakan bergantung pada ukuran prompt dan ukuran penyelesaian (yang bervariasi menurut permintaan), kebijakan tidak dapat memprediksi total konsumsi token sebelumnya. Desain ini dapat memungkinkan batas token untuk dilampaui sementara ketika beberapa permintaan diproses secara bersamaan.
Catatan
Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.
Azure OpenAI yang didukung di model Azure AI Foundry
Kebijakan ini digunakan dengan API yang ditambahkan ke API Management dari Azure OpenAI dalam model AI Foundry dari jenis berikut:
| Tipe API | Model yang didukung |
|---|---|
| Penyelesaian obrolan | gpt-3.5gpt-4gpt-4ogpt-4o-minio1o3 |
| Penyematan | text-embedding-3-largetext-embedding-3-smalltext-embedding-ada-002 |
| Respons (pratinjau) |
gpt-4o (Versi: 2024-11-20, 2024-08-06, 2024-05-13)gpt-4o-mini (Versi: 2024-07-18)gpt-4.1 (Versi: 2025-04-14)gpt-4.1-nano (Versi: 2025-04-14)gpt-4.1-mini (Versi: 2025-04-14)gpt-image-1 (Versi: 2025-04-15)o3 (Versi: 2025-04-16)o4-mini (Versi: '2025-04-16) |
Catatan
API penyelesaian tradisional hanya tersedia dengan versi model lama dan dukungan terbatas.
Untuk informasi saat ini tentang model dan kemampuannya, lihat Azure OpenAI di Model Foundry.
Pernyataan kebijakan
<azure-openai-token-limit counter-key="key value"
tokens-per-minute="number"
token-quota="number"
token-quota-period="Hourly | Daily | Weekly | Monthly | Yearly"
estimate-prompt-tokens="true | false"
retry-after-header-name="custom header name, replaces default 'Retry-After'"
retry-after-variable-name="policy expression variable name"
remaining-quota-tokens-header-name="header name"
remaining-quota-tokens-variable-name="policy expression variable name"
remaining-tokens-header-name="header name"
remaining-tokens-variable-name="policy expression variable name"
tokens-consumed-header-name="header name"
tokens-consumed-variable-name="policy expression variable name" />
Atribut
| Atribut | Deskripsi | Wajib diisi | Bawaan |
|---|---|---|---|
| penghitung-kunci | Kunci yang digunakan untuk kebijakan batas token. Untuk setiap nilai kunci, penghitung tunggal digunakan untuk semua cakupan tempat kebijakan dikonfigurasi. Ekspresi kebijakan diizinkan. | Ya | T/A |
| token per menit | Jumlah maksimum token yang dikonsumsi oleh perintah dan penyelesaian per menit. | Batas tarif (tokens-per-minute), kuota (token-quota melalui token-quota-period), atau keduanya harus ditentukan. |
T/A |
| token-kuota | Jumlah maksimum token yang diizinkan selama interval waktu yang ditentukan dalam token-quota-period. Ekspresi kebijakan tidak diizinkan. |
Batas tarif (tokens-per-minute), kuota (token-quota melalui token-quota-period), atau keduanya harus ditentukan. |
T/A |
| periode kuota token | Panjang jendela tetap setelah reset token-quota . Nilainya harus salah satu dari yang berikut ini: Hourly,Daily, , WeeklyMonthly, Yearly. Waktu mulai periode kuota dihitung menggunakan tanda waktu UTC yang dipotong ke unit (jam, hari, dll.) yang digunakan untuk periode tersebut. |
Batas tarif (tokens-per-minute), kuota (token-quota melalui token-quota-period), atau keduanya harus ditentukan. |
T/A |
| estimate-prompt-tokens | Nilai Boolean yang menentukan apakah akan memperkirakan jumlah token yang diperlukan untuk permintaan: - true: memperkirakan jumlah token berdasarkan skema prompt dalam API; dapat mengurangi performa. - false: jangan perkirakan token perintah. Ketika diatur ke false, token yang tersisa per counter-key dihitung menggunakan penggunaan token aktual dari respons model. Ini dapat mengakibatkan perintah dikirim ke model yang melebihi batas token. Dalam kasus seperti itu, ini akan terdeteksi dalam respons, dan semua permintaan berikutnya akan diblokir oleh kebijakan hingga batas token diatur ulang. |
Ya | T/A |
| coba lagi-setelah-header-nama | Nama header respons kustom yang nilainya adalah interval coba lagi yang disarankan dalam hitungan detik setelah yang ditentukan tokens-per-minute atau token-quota terlampaui. Ekspresi kebijakan tidak diizinkan. |
Tidak. | Retry-After |
| coba lagi-setelah-nama-variabel | Nama variabel yang menyimpan interval coba lagi yang direkomendasikan dalam hitungan detik setelah yang ditentukan tokens-per-minute atau token-quota terlampaui. Ekspresi kebijakan tidak diizinkan. |
Tidak. | T/A |
| remaining-quota-tokens-header-name | Nama header respons yang nilainya setelah setiap eksekusi kebijakan adalah perkiraan jumlah token yang tersisa yang sesuai dengan token-quota yang diizinkan untuk token-quota-period. Ekspresi kebijakan tidak diizinkan. |
Tidak. | T/A |
| remaining-quota-tokens-variable-name | Nama variabel yang setelah setiap eksekusi kebijakan menyimpan perkiraan jumlah token yang tersisa yang sesuai dengan token-quota yang diizinkan untuk token-quota-period. Ekspresi kebijakan tidak diizinkan. |
Tidak. | T/A |
| remaining-tokens-header-name | Nama header respons yang nilainya setelah setiap eksekusi kebijakan adalah jumlah token yang tersisa yang sesuai dengan tokens-per-minute yang diizinkan untuk interval waktu. Ekspresi kebijakan tidak diizinkan. |
Tidak. | T/A |
| remaining-tokens-variable-name | Nama variabel yang setelah setiap eksekusi kebijakan menyimpan jumlah token yang tersisa yang sesuai dengan tokens-per-minute yang diizinkan untuk interval waktu. Ekspresi kebijakan tidak diizinkan. |
Tidak. | T/A |
| tokens-consumed-header-name | Nama header respons yang nilainya adalah jumlah token yang digunakan oleh perintah dan penyelesaian. Header ditambahkan ke respons hanya setelah respons diterima dari backend. Ekspresi kebijakan tidak diizinkan. | Tidak. | T/A |
| tokens-consumed-variable-name | Nama variabel yang diinisialisasi ke perkiraan jumlah token dalam perintah di backend bagian alur jika estimate-prompt-tokens adalah true dan nol sebaliknya. Variabel diperbarui dengan jumlah yang dilaporkan setelah menerima respons di outbound bagian . |
Tidak. | T/A |
Penggunaan
- Bagian kebijakan: masuk
- Cakupan kebijakan: global, ruang kerja, produk, API, operasi
- Gateway: klasik, v2, dihost sendiri, ruang kerja
Catatan penggunaan
- Kebijakan ini dapat digunakan beberapa kali per definisi kebijakan
- Kebijakan ini dapat dikonfigurasi secara opsional saat menambahkan API Azure OpenAI menggunakan portal.
- Jika tersedia saat
estimate-prompt-tokensdiatur kefalse, nilai di bagian penggunaan respons dari Azure OpenAI API digunakan untuk menentukan penggunaan token. - Ketika beberapa permintaan dikirim secara bersamaan atau dengan sedikit penundaan, kebijakan dapat mengizinkan konsumsi token yang melebihi batas yang dikonfigurasi. Hal ini terjadi karena kebijakan tidak dapat menentukan jumlah pasti token yang digunakan hingga respons diterima dari backend. Setelah respons diproses dan batas token terlampaui, permintaan berikutnya diblokir hingga batas diatur ulang.
- Titik akhir Azure OpenAI tertentu mendukung streaming respons. Ketika
streamdiatur ketruedalam permintaan API untuk mengaktifkan streaming, token prompt selalu diperkirakan, terlepas dariestimate-prompt-tokensnilai atribut. Token penyelesaian juga diperkirakan saat respons dialirkan. - Nilai
remaining-quota-tokens-variable-nameatauremaining-quota-tokens-header-nameadalah perkiraan untuk tujuan informasi tetapi bisa lebih besar dari yang diharapkan berdasarkan konsumsi token aktual. Nilainya lebih akurat karena kuota didekati. - Untuk model yang menerima input gambar, token gambar umumnya dihitung oleh model bahasa backend dan disertakan dalam perhitungan batas dan kuota. Namun, ketika streaming digunakan atau
estimate-prompt-tokensdiatur ketrue, kebijakan saat ini menghitung setiap gambar secara berlebihan sebagai jumlah maksimum 1200 token. - API Management menggunakan satu penghitung untuk setiap
counter-keynilai yang Anda tentukan dalam kebijakan. Penghitung diperbarui di semua cakupan di mana kebijakan dikonfigurasi dengan nilai kunci tersebut. Jika Anda ingin mengonfigurasi penghitung terpisah pada cakupan yang berbeda (misalnya, API atau produk tertentu), tentukan nilai kunci yang berbeda pada cakupan yang berbeda. Misalnya, tambahkan string yang mengidentifikasi cakupan ke nilai ekspresi. - Tingkat v2 menggunakan algoritme bucket token untuk pembatasan kecepatan, yang berbeda dari algoritme jendela geser di tingkat klasik. Karena perbedaan implementasi ini, saat Anda mengonfigurasi batas token di tingkat v2 di beberapa cakupan dengan menggunakan yang sama
counter-key, pastikan nilainyatokens-per-minutekonsisten di semua instans kebijakan. Nilai yang tidak konsisten dapat menyebabkan perilaku yang tidak dapat diprediksi. - Kebijakan ini melacak penggunaan token secara independen di setiap gateway tempatnya diterapkan, termasuk gateway ruang kerja dan gateway regional dalam penyebaran multi-wilayah. Ini tidak menghitung token agregat di seluruh instans.
Contoh
Batas tarif token
Dalam contoh berikut, batas tarif token 5000 per menit dikunci oleh alamat IP pemanggil. Kebijakan ini tidak memperkirakan jumlah token yang diperlukan untuk perintah. Setelah setiap eksekusi kebijakan, token yang tersisa yang diizinkan untuk alamat IP pemanggil tersebut dalam periode waktu disimpan dalam variabel remainingTokens.
<policies>
<inbound>
<base />
<azure-openai-token-limit
counter-key="@(context.Request.IpAddress)"
tokens-per-minute="5000" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Kuota token
Dalam contoh berikut, kuota token 10000 kunci oleh ID langganan dan direset setiap bulan. Setelah setiap eksekusi kebijakan, jumlah token yang tersisa yang diizinkan untuk ID langganan tersebut dalam periode waktu disimpan dalam variabel remainingQuotaTokens.
<policies>
<inbound>
<base />
<azure-openai-token-limit
counter-key="@(context.Subscription.Id)"
token-quota="100000" token-quota-period="Monthly" remaining-quota-tokens-variable-name="remainingQuotaTokens" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Kebijakan terkait
Konten terkait
Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat:
- Tutorial: Mengubah dan melindungi API Anda
- Referensi Kebijakan untuk daftar lengkap pernyataan kebijakan dan pengaturannya
- Ekspresi kebijakan
- Mengatur atau mengedit kebijakan
- Menggunakan kembali konfigurasi kebijakan
- Repositori cuplikan kebijakan
- Repositori taman bermain kebijakan
- Toolkit kebijakan Azure API Management
- Mendapatkan bantuan Copilot untuk membuat, menjelaskan, dan memecahkan masalah kebijakan