Bagikan melalui


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

Catatan penggunaan

  • Kebijakan ini dapat digunakan beberapa kali per definisi kebijakan.
  • Jika tersedia saat estimate-prompt-tokens diatur ke false, nilai di bagian penggunaan respons dari LLM API digunakan untuk menentukan penggunaan token.
  • Titik akhir LLM tertentu mendukung streaming respons. Ketika stream diatur ke true dalam permintaan API untuk mengaktifkan streaming, token prompt selalu diperkirakan, terlepas dari estimate-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>

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: