Tokenhantering

Slutförd

Anta att du får en plötslig ökning av trafiken mot ditt API, kanske det finns en försäljning eller någon annan anledning. För att undvika överförbrukning och eventuella avbrott i tjänsten måste du ta reda på hur du hanterar det.

Princip för Gräns för Azure OpenAI-token

Som nämnts i början av den här lektionen är plötslig topp något, du måste hantera. Den goda nyheten är att Azure API Management har något som kallas tokengränsprincip.

Den här principen gör det möjligt för kunder att ange gränser för tokenförbrukning, uttryckt i token per minut (TPM) och säkerställa rättvis och effektiv användning av OpenAI-resurser.

Nyckelfunktioner

De viktigaste funktionerna i den här principen är:

  • Exakt kontroll: Kunder kan tilldela tokenbaserade gränser för olika räknarnycklar, till exempel prenumerationsnyckel eller IP-adress, och skräddarsy tillämpningen efter specifika användningsfall.
  • Realtidsövervakning: Principen förlitar sig på tokenanvändningsmått som returneras från OpenAI-slutpunkten, vilket möjliggör korrekt övervakning och tillämpning av gränser i realtid.
  • Förberäkning av token: Det möjliggör förberäkning av prompttoken på Azure API Management-sidan, vilket minimerar onödiga begäranden till OpenAI-serverdelen om gränsen redan har överskridits.
  • Förbättrad anpassning: Kunder kan använda rubriker och variabler som tokenförbrukning och återstående token i principer för bättre kontroll och anpassning.

SS du kan se, det finns en hel del funktioner som hjälper dig att hantera kostnader och tack vare realtidsövervakning kan du se till att du inte överskrider gränserna.

Så här används det

Om du vill använda den här principen måste du lägga till den i den inkommande bearbetningspipelinen för API-åtgärden. Så här kan du göra det:

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

Det finns en hel del attribut som du kan ange, men de viktigaste är:

  • counter-key: Nyckeln som ska användas för att räkna token. Det här värdet kan vara en prenumerationsnyckel eller en IP-adress.
  • tokens per minut: Antalet token som tillåts per minut.
  • estimate-prompt-tokens: Om du vill uppskatta prompttoken eller inte.

Måttprincip för Azure OpenAI Emit Token

Den här principen åtgärdar behovet av detaljerad övervakning och analys av tokenanvändning i program med hjälp av Azure OpenAI-modeller.

Genom att tillhandahålla omfattande mått hjälper det organisationer:

  • Optimera resursallokering: Förstå och hantera tokenförbrukning effektivt.
  • Förbättra beslutsfattandet: Få insikter om användningsmönster för att fatta välgrundade beslut om skalning och resurshantering.
  • Förbättra prestandaövervakning: Spåra och analysera tokenanvändning för att identifiera och åtgärda potentiella problem proaktivt

Så här använder du policyn för mått för emittoken

Om du vill använda den här principen måste du lägga till den i den inkommande bearbetningspipelinen för API-åtgärden. Så här kodar du det i XML:

<azure-openai-emit-token-metric
        namespace="metric namespace" >      
        <dimension name="dimension name" value="dimension value" />
        ...additional dimensions...
</azure-openai-emit-token-metric>

Här är ett exempel med flera dimensioner:

<policies>
  <inbound>
      <azure-openai-emit-token-metric
            namespace="AzureOpenAI">   
            <dimension name="User ID" />
            <dimension name="Client IP" value="@(context.Request.IpAddress)" />
            <dimension name="API ID" />
        </azure-openai-emit-token-metric> 
  </inbound>
  <outbound>
  </outbound>
</policies>

I exemplet ovan händer följande:

  • principen är konfigurerad för att generera tokenmått till AzureOpenAI-namnområdet med dimensioner för användar-ID, klient-IP och API-ID.
  • Värdet för klientens IP-dimension anges till IP-adressen för klienten som skickar begäran.

Tänk dig nu att du kan visa dessa mått på en instrumentpanel och du kan övervaka användningen av ditt API i realtid. Du kan till exempel se hur många token som används av en viss användare eller hur många token som används av ett specifikt API. Den här kraftfulla funktionen som kan hjälpa dig att optimera dina resurser och fatta välgrundade beslut om skalning och resurshantering.

Kontrollera dina kunskaper

1.

Hur hjälper en princip för tokenbegränsning till att hantera API-användning?

2.

Vilka är några bra dimensioner att använda för en tokenmåttprincip i Azure API Management och varför?