Aracılığıyla paylaş


Azure OpenAI API belirteci kullanımını sınırlama

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

İlke, azure-openai-token-limit dil modeli belirteçlerinin tüketimini dakika başına belirtilen bir sayıyla sınırlayarak Azure OpenAI Hizmeti API'sinin kullanım artışlarını anahtar temelinde engeller. Belirteç kullanımı aşıldığında, çağıran bir 429 Too Many Requests yanıt durum kodu alır.

İlke, OpenAI 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 zorunlu kılabilir. İlke ayrıca API Management tarafından istem belirteçlerinin önceden hesaplanmasına olanak tanır ve sınır zaten aşılmışsa OpenAI arka ucuna yönelik gereksiz istekleri en aza indirir.

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 Azure OpenAI Hizmeti modelleri

İlke, Aşağıdaki türlerdeki Azure OpenAI Hizmeti'nden API Management'a eklenen API'lerle birlikte kullanılır:

API türü Desteklenen modeller
Sohbet tamamlama gpt-3.5

gpt-4
Tamamlama gpt-3.5-turbo-instruct
Eklemeler metin ekleme-3-büyük

metin ekleme-3-küçük

metin ekleme-ada-002

Daha fazla bilgi için Azure OpenAI Service modelleri konusuna bakın.

İlke bildirimi

<azure-openai-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.
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.
  • Bu ilke, portal kullanılarak Azure OpenAI Hizmetinden api eklenirken isteğe bağlı olarak yapılandırılabilir.
  • Kullanılabilir olduğunda estimate-prompt-tokens false, Azure OpenAI Hizmeti 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ı Azure OpenAI 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 />
        <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>

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