Büyük dil modeli API belirteci kullanımını sınırlama

ŞUNLAR IÇIN GEÇERLIDIR: Geliştirici | Temel | Temel v2 | Standart | Standart v2 | Premium

İlke, llm-token-limit LLM belirteçlerinin tüketimini dakika başına belirtilen bir sayıyla sınırlayarak anahtar başına büyük dil modeli (LLM) API kullanımındaki ani artışları önler. Belirteç kullanımı aşıldığında, çağıran bir 429 Too Many Requests yanıt durum kodu alır.

İlke, LLM uç noktasından döndürülen belirteç kullanım ölçümlerine dayanarak sınırları gerçek zamanlı olarak doğru bir şekilde izleyebilir ve uygulayabilir. İlke ayrıca API Management tarafından istem belirteçlerinin önceden hesaplanmasına olanak tanır ve sınır zaten aşılmışsa LLM arka ucuna yönelik gereksiz istekleri en aza indirir.

Not

Şu anda bu ilke önizleme aşamasındadır.

Not

İlkenin öğelerini ve alt öğelerini ilke bildiriminde sağlanan sırayla ayarlayın. API Management ilkelerini ayarlama veya düzenleme hakkında daha fazla bilgi edinin.

Desteklenen modeller

İlkeyi, Azure AI Model Çıkarımı API'siyle kullanılabilen Azure API Management'a eklenen LLM API'leri ile kullanın.

İlke bildirimi

<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" />

Özellikler

Öznitelik Açıklama Zorunlu Varsayılan
counter-key Belirteç sınırı ilkesi için kullanılacak anahtar. Her anahtar değeri için, ilkenin yapılandırıldığı tüm kapsamlar için tek bir sayaç kullanılır. İlke ifadelerine izin verilir. Yes Yok
dakika başına belirteç sayısı Dakika başına istem ve tamamlama tarafından tüketilen en fazla belirteç sayısı. Yes Yok
estimate-prompt-tokens İstem için gereken belirteç sayısının tahmin edilip edilmeyeceğini belirleyen Boole değeri:
- true: API'deki istem şemasına göre belirteç sayısını tahmin edin; performansı düşürebilir.
- false: istem belirteçlerini tahmin etmeyin.

olarak falseayarlandığında, kalan belirteç sayısı counter-key , modelin yanıtından elde edilen gerçek belirteç kullanımı kullanılarak hesaplanır. Bu, modele belirteç sınırını aşan istemlerin gönderilmesine neden olabilir. Böyle bir durumda, bu yanıtta algılanır ve belirteç sınırı yeniden boşaltılana kadar tüm başarılı istekler ilke tarafından engellenir.
Yes Yok
retry-after-header-name Belirtilen tokens-per-minute değer aşıldıktan sonra saniye cinsinden önerilen yeniden deneme aralığı olan özel yanıt üst bilgisinin adı. İlke ifadelerine izin verilmez. Hayır Retry-After
retry-after-variable-name Önerilen yeniden deneme aralığını belirtilen tokens-per-minute aşıldıktan sonra saniyeler içinde depolayan değişkenin adı. İlke ifadelerine izin verilmez. Hayır YOK
remaining-tokens-header-name Her ilke yürütmeden sonraki değeri, zaman aralığı için izin verilen kalan belirteçlerin sayısı olan yanıt üst bilgisinin adıdır. İlke ifadelerine izin verilmez. Hayır YOK
remaining-tokens-variable-name Her ilke yürütmeden sonra zaman aralığı için izin verilen kalan belirteçlerin sayısını depolayan bir değişkenin adı. İlke ifadelerine izin verilmez. Hayır YOK
tokens-consumed-header-name Değeri hem istem hem de tamamlama tarafından kullanılan belirteç sayısı olan yanıt üst bilgisinin adı. Üst bilgi yalnızca yanıt arka uçtan alındıktan sonra yanıta eklenir. İlke ifadelerine izin verilmez. Hayır YOK
tokens-consumed-variable-name İşlem hattının bölümündeki tahmin edilen belirteç backend sayısıyla başlatılan değişkenin adı (aksi takdirde estimate-prompt-tokens sıfır ise true ). değişken, bölümünde yanıtı outbound aldıktan sonra bildirilen sayı ile güncelleştirilir. Hayır YOK

Kullanım

Kullanım notları

  • Bu ilke, ilke tanımı başına birden çok kez kullanılabilir.
  • kullanılabilir olduğunda estimate-prompt-tokens false, LLM API'sinden gelen yanıtın kullanım bölümündeki değerler belirteç kullanımını belirlemek için kullanılır.
  • Bazı LLM uç noktaları yanıtların akışını destekler. stream Akışı etkinleştirmek için API isteğinde olarak ayarlandığındatrue, özniteliğin değerinden estimate-prompt-tokens bağımsız olarak istem belirteçleri her zaman tahmin edilir.
  • API Management, ilkede belirttiğiniz her counter-key değer için tek bir sayaç kullanır. Sayaç, ilkenin bu anahtar değeriyle yapılandırıldığı tüm kapsamlarda güncelleştirilir. Farklı kapsamlarda (örneğin, belirli bir API veya ürün) ayrı sayaçlar yapılandırmak istiyorsanız, farklı kapsamlarda farklı anahtar değerleri belirtin. Örneğin, kapsamı ifadenin değerine tanımlayan bir dize ekleyin.

Örnek

Aşağıdaki örnekte, dakika başına 5000 belirteç sınırı arayan IP adresi tarafından anahtarlanır. İlke, istem için gereken belirteç sayısını tahmin etmez. Her ilke yürütmeden sonra, zaman aralığında bu çağıranın IP adresi için izin verilen kalan belirteçler değişkeninde remainingTokensdepolanır.

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

İlkelerle çalışma hakkında daha fazla bilgi için bkz: