Membatasi penggunaan token API model bahasa besar
BERLAKU UNTUK: Pengembang | Dasar | Dasar v2 | Standar | Standar v2 | Premium | Premium v2
Kebijakan ini llm-token-limit
mencegah lonjakan penggunaan API model bahasa besar (LLM) per kunci dengan membatasi konsumsi token LLM ke angka tertentu per menit. Ketika penggunaan token terlampaui, pemanggil menerima 429 Too Many Requests
kode status respons.
Dengan mengandalkan metrik penggunaan token yang dikembalikan dari titik akhir LLM, kebijakan dapat memantau dan menerapkan batas secara akurat secara real time. Kebijakan ini juga memungkinkan prakalkulasi token prompt oleh API Management, meminimalkan permintaan yang tidak perlu ke backend LLM jika batas sudah terlampaui.
Catatan
Saat ini, kebijakan ini sedang dalam pratinjau.
Catatan
Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.
Model yang didukung
Gunakan kebijakan dengan API LLM yang ditambahkan ke Azure API Management yang tersedia melalui Azure AI Model Inference API.
Pernyataan kebijakan
<llm-token-limit counter-key="key value"
tokens-per-minute="number"
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-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 | Default |
---|---|---|---|
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. | Ya | 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 yang berhasil akan diblokir oleh kebijakan sampai batas token dibebaskan lagi. |
Ya | T/A |
coba lagi-setelah-header-nama | Nama header respons kustom yang nilainya adalah interval coba lagi yang direkomendasikan dalam hitungan detik setelah yang ditentukan tokens-per-minute terlampaui. Ekspresi kebijakan tidak diizinkan. |
No | Retry-After |
coba lagi-setelah-nama-variabel | Nama variabel yang menyimpan interval coba lagi yang direkomendasikan dalam hitungan detik setelah ditentukan tokens-per-minute terlampaui. Ekspresi kebijakan tidak diizinkan. |
No | T/A |
remaining-tokens-header-name | Nama header respons yang nilainya setelah setiap eksekusi kebijakan adalah jumlah token yang tersisa yang diizinkan untuk interval waktu. Ekspresi kebijakan tidak diizinkan. | No | T/A |
remaining-tokens-variable-name | Nama variabel yang setelah setiap eksekusi kebijakan menyimpan jumlah token yang tersisa yang diizinkan untuk interval waktu. Ekspresi kebijakan tidak diizinkan. | No | 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. | No | 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 . |
No | 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.
- Jika tersedia saat
estimate-prompt-tokens
diatur kefalse
, nilai di bagian penggunaan respons dari LLM API digunakan untuk menentukan penggunaan token. - Titik akhir LLM tertentu mendukung streaming respons. Ketika
stream
diatur ketrue
dalam permintaan API untuk mengaktifkan streaming, token prompt selalu diperkirakan, terlepas dariestimate-prompt-tokens
nilai atribut. - API Management menggunakan satu penghitung untuk setiap
counter-key
nilai 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.
Contoh
Dalam contoh berikut, batas 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 />
<llm-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>
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
- Toolkit kebijakan Azure API Management
- Kebijakan penulis menggunakan Microsoft Copilot di Azure