Omezení využití tokenů rozhraní API Azure OpenAI

PLATÍ PRO: Vývojář | Základní | Basic v2 | Standardní | Standard v2 | Prémie

Tato azure-openai-token-limit zásada brání špičkám využití rozhraní API služby Azure OpenAI na základě klíče omezením spotřeby tokenů jazykového modelu na zadaný počet za minutu. Když dojde k překročení využití tokenu, volající obdrží stavový 429 Too Many Requests kód odpovědi.

Díky závislosti na metrikách využití tokenů vrácených z koncového bodu OpenAI může zásada přesně monitorovat a vynucovat limity v reálném čase. Zásada také umožňuje předem přepočítat tokeny výzvy službou API Management, což minimalizuje nepotřebné požadavky na back-end OpenAI, pokud je limit již překročen.

Poznámka:

Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.

Podporované modely služby Azure OpenAI

Zásady se používají s rozhraními API přidanými do služby API Management ze služby Azure OpenAI s následujícími typy:

Typ rozhraní API Podporované modely
Dokončení chatu gpt-3.5

gpt-4
Dokončení gpt-3.5-turbo-instruct
Vkládání text-embedding-3-large

text-embedding-3-small

text-embedding-ada-002

Další informace najdete v tématu Modely Azure OpenAI Service.

Prohlášení o zásadách

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

Atributy

Atribut Popis Požaduje se Výchozí
counter-key Klíč, který se má použít pro zásady omezení tokenu. Pro každou hodnotu klíče se pro všechny obory, ve kterých je zásada nakonfigurovaná, používá jeden čítač. Výrazy zásad jsou povolené. Yes
tokeny za minutu Maximální počet tokenů spotřebovaných výzvou a dokončením za minutu. Yes
estimate-prompt-tokens Logická hodnota, která určuje, jestli se má odhadnout počet tokenů požadovaných pro výzvu:
- true: odhad počtu tokenů na základě schématu výzvy v rozhraní API; může snížit výkon.
- false: Nepojádejte tokeny výzvy.

Pokud je tato hodnota nastavená false, zbývající tokeny se counter-key počítají pomocí skutečného využití tokenu z odpovědi modelu. To může vést k odeslání výzev do modelu, které překračují limit tokenu. V takovém případě se tato akce zjistí v odpovědi a všechny úspěšné žádosti budou zásadami blokovány, dokud se limit tokenu znovu neumožní.
Yes
retry-after-header-name Název vlastní hlavičky odpovědi, jejíž hodnota je doporučený interval opakování v sekundách po překročení zadané tokens-per-minute hodnoty. Výrazy zásad nejsou povolené. No Retry-After
retry-after-variable-name Název proměnné, která ukládá doporučený interval opakování v sekundách po překročení zadané tokens-per-minute hodnoty. Výrazy zásad nejsou povolené. No
remaining-tokens-header-name Název hlavičky odpovědi, jejíž hodnota po každém spuštění zásady je počet zbývajících tokenů povolených pro časový interval. Výrazy zásad nejsou povolené. No
remaining-tokens-variable-name Název proměnné, která po každém spuštění zásady ukládá počet zbývajících tokenů povolených pro časový interval. Výrazy zásad nejsou povolené. No
tokens-consumed-header-name Název hlavičky odpovědi, jejíž hodnota je počet tokenů spotřebovaných výzvou i dokončením. Hlavička se přidá do odpovědi až po přijetí odpovědi z back-endu. Výrazy zásad nejsou povolené. No
tokens-consumed-variable-name Název proměnné inicializované na odhadovaný počet tokenů na příkazovém řádku v backend části kanálu, pokud je true v opačném případě estimate-prompt-tokens nula. Proměnná se aktualizuje o hlášený počet přijatých odpovědí v outbound části. No

Využití

Poznámky k využití

  • Tuto zásadu je možné použít vícekrát pro každou definici zásady.
  • Tyto zásady je možné volitelně nakonfigurovat při přidávání rozhraní API ze služby Azure OpenAI pomocí portálu.
  • Pokud je tato možnost estimate-prompt-tokens nastavená na falsehodnotu , hodnoty v části využití odpovědi z rozhraní API služby Azure OpenAI se používají k určení využití tokenu.
  • Některé koncové body Azure OpenAI podporují streamování odpovědí. Pokud stream je v požadavku rozhraní API nastavená na true povolení streamování, vždy se odhadují tokeny výzvy bez ohledu na hodnotu atributu estimate-prompt-tokens . Tokeny dokončení se také odhadují při streamování odpovědí.
  • Služba API Management používá pro každou counter-key hodnotu, kterou zadáte v zásadách, jeden čítač. Čítač se aktualizuje ve všech oborech, ve kterých je zásada nakonfigurovaná s danou hodnotou klíče. Pokud chcete nakonfigurovat samostatné čítače v různých oborech (například konkrétní rozhraní API nebo produkt), zadejte různé hodnoty klíče v různých oborech. Připojte například řetězec, který identifikuje obor k hodnotě výrazu.

Příklad

V následujícím příkladu je limit tokenu 5000 za minutu klíčován IP adresou volajícího. Zásada nehodnotuje počet tokenů požadovaných pro výzvu. Po každém spuštění zásad jsou zbývající tokeny povolené pro danou IP adresu volajícího v časovém období uloženy v proměnné remainingTokens.

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

Další informace o práci se zásadami najdete v tématech: