Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP: Alle lagen van API Management
In dit artikel worden mogelijkheden in Azure API Management geïntroduceerd om u te helpen bij het beheren van generatieve AI-API's, zoals de API's van Azure OpenAI Service. Azure API Management biedt een scala aan beleidsregels, metrische gegevens en andere functies om de beveiliging, prestaties en betrouwbaarheid te verbeteren voor de API's die uw intelligente apps leveren. Deze functies worden gezamenlijk AI-gatewaymogelijkheden genoemd voor uw generatieve AI-API's.
Notitie
- Gebruik ai-gatewaymogelijkheden voor het beheren van API's die beschikbaar zijn voor Azure OpenAI Service, beschikbaar via azure AI-modeldeductie-API of met openAI-compatibele modellen die worden geleverd via deductieproviders van derden.
- AI-gatewaymogelijkheden zijn functies van de bestaande API-gateway van API Management, niet van een afzonderlijke API-gateway. Zie het overzicht van Azure API Management voor meer informatie over API Management.
Uitdagingen bij het beheren van generatieve AI-API's
Een van de belangrijkste resources die u hebt in generatieve AI-services is tokens. Azure OpenAI Service wijst quota toe voor uw modelimplementaties, uitgedrukt in tokens per minuut (TPM), die vervolgens wordt gedistribueerd over uw modelgebruikers, bijvoorbeeld verschillende toepassingen, ontwikkelaarsteams, afdelingen binnen het bedrijf, enzovoort.
Met Azure kunt u eenvoudig één app verbinden met Azure OpenAI Service: u kunt rechtstreeks verbinding maken met behulp van een API-sleutel met een TPM-limiet die rechtstreeks op het niveau van de modelimplementatie is geconfigureerd. Wanneer u echter begint met het uitbreiden van uw toepassingsportfolio, krijgt u meerdere apps te zien die één of zelfs meerdere Azure OpenAI Service-eindpunten aanroepen die zijn geïmplementeerd als PTU-exemplaren (Pay-as-You-Go of Provisioned Throughput Units ). Dat komt met bepaalde uitdagingen:
- Hoe wordt tokengebruik bijgehouden in meerdere toepassingen? Kunnen er kruislingse kosten worden berekend voor meerdere toepassingen/teams die gebruikmaken van Azure OpenAI Service-modellen?
- Hoe zorgt u ervoor dat één app niet het volledige TPM-quotum verbruikt, zodat andere apps geen optie hebben om Azure OpenAI Service-modellen te gebruiken?
- Hoe wordt de API-sleutel veilig gedistribueerd over meerdere toepassingen?
- Hoe wordt de belasting verdeeld over meerdere Azure OpenAI-eindpunten? Kunt u ervoor zorgen dat de vastgelegde capaciteit in PTU's is uitgeput voordat u terugvalt op instanties met betalen per gebruik?
In de rest van dit artikel wordt beschreven hoe Azure API Management u kan helpen deze uitdagingen aan te pakken.
Azure OpenAI-serviceresource als API importeren
Importeer een API vanuit een Azure OpenAI-service-eindpunt naar Azure API Management met behulp van één klikervaring. API Management stroomlijnt het onboardingproces door automatisch het OpenAPI-schema voor de Azure OpenAI-API te importeren en verificatie in te stellen voor het Azure OpenAI-eindpunt met behulp van beheerde identiteit, waardoor handmatige configuratie wordt verwijderd. Binnen dezelfde gebruiksvriendelijke ervaring kunt u beleidsregels voor tokenlimieten vooraf configureren, metrische tokengegevens verzenden en semantische caching.
Beleid voor tokenlimiet
Configureer het azure OpenAI-tokenlimietbeleid om limieten per API-consument te beheren en af te dwingen op basis van het gebruik van Azure OpenAI-servicetokens. Met dit beleid kunt u een frequentielimiet instellen, uitgedrukt in tokens per minuut (TPM). U kunt ook een tokenquotum instellen gedurende een opgegeven periode, zoals elk uur, dagelijks, wekelijks, maandelijks of jaarlijks.
Dit beleid biedt flexibiliteit voor het toewijzen van limieten op basis van tokens voor tellersleutels, zoals abonnementssleutel, ip-adres van oorsprong of een willekeurige sleutel die is gedefinieerd via een beleidsexpressie. Het beleid maakt ook het vooraf berekenen van prompttokens aan de kant van Azure API Management mogelijk, waardoor onnodige aanvragen naar de back-end van de Azure OpenAI-service worden geminimaliseerd als de prompt de limiet al overschrijdt.
In het volgende basisvoorbeeld ziet u hoe u een TPM-limiet van 500 per abonnementssleutel instelt:
<azure-openai-token-limit counter-key="@(context.Subscription.Id)"
tokens-per-minute="500" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens">
</azure-openai-token-limit>
Aanbeveling
Api Management biedt het equivalente llm-tokenlimietbeleid om tokenlimieten voor andere LLM-API's te beheren en af te dwingen.
Token-metriekbeleid genereren
Het metrische tokenbeleid van Azure OpenAI verzendt metrische gegevens naar Application Insights over het verbruik van LLM-tokens via Azure OpenAI-service-API's. Het beleid biedt een overzicht van het gebruik van Azure OpenAI Service-modellen voor meerdere toepassingen of API-gebruikers. Dit beleid kan nuttig zijn voor terugstortingsscenario's, bewaking en capaciteitsplanning.
Met dit beleid worden prompts, voltooiingen en metrische gegevens over het totale tokengebruik vastgelegd en verzonden naar een Application Insights-naamruimte van uw keuze. Bovendien kunt u vooraf gedefinieerde dimensies configureren of selecteren om metrische gegevens over tokengebruik te splitsen, zodat u metrische gegevens kunt analyseren op abonnements-id, IP-adres of een aangepaste dimensie van uw keuze.
Met het volgende beleid worden bijvoorbeeld metrische gegevens verzonden naar Application Insights, gesplitst op client-IP-adres, API en gebruiker:
<azure-openai-emit-token-metric namespace="openai">
<dimension name="Client IP" value="@(context.Request.IpAddress)" />
<dimension name="API ID" value="@(context.Api.Id)" />
<dimension name="User ID" value="@(context.Request.Headers.GetValueOrDefault("x-user-id", "N/A"))" />
</azure-openai-emit-token-metric>
Aanbeveling
Voor het verzenden van metrische gegevens voor andere LLM-API's biedt API Management het equivalente llm-emit-token-metric policy.
Back-end load balancer en circuitonderbreker
Een van de uitdagingen bij het bouwen van intelligente toepassingen is ervoor te zorgen dat de toepassingen bestand zijn tegen back-endfouten en hoge belastingen kunnen verwerken. Door uw Azure OpenAI-service-eindpunten te configureren met behulp van back-ends in Azure API Management, kunt u de taak over deze eindpunten verdelen. U kunt ook regels voor circuitonderbrekers definiëren om het doorsturen van aanvragen naar de back-ends van de Azure OpenAI-service te stoppen als ze niet reageren.
De backend loadbalancer biedt ondersteuning voor round-robin, gewogen en op prioriteit gebaseerde load balancing, waardoor u flexibel een loaddistributiestrategie kunt definiëren die voldoet aan uw specifieke vereisten. Definieer bijvoorbeeld prioriteiten in de configuratie van de load balancer om een optimaal gebruik van specifieke Azure OpenAI-eindpunten te garanderen, met name de eindpunten die zijn gekocht als PTU's.
Het backend-circuit breaker heeft een dynamische uitschakelduur, waarbij waarden worden toegepast uit de Retry-After-header die door de backend is opgegeven. Dit zorgt voor nauwkeurig en tijdig herstel van de back-ends, waardoor het gebruik van uw prioriteitsback-ends wordt gemaximaliseerd.
Semantisch cachebeleid
Configureer semantisch cachebeleid van Azure OpenAI om het tokengebruik te optimaliseren door voltooiingen op te slaan voor vergelijkbare prompts.
Schakel in API Management semantische caching in met behulp van Azure Redis Enterprise, Azure Managed Redis of een andere externe cache die compatibel is met RediSearch en onboarding naar Azure API Management. Met behulp van de Azure OpenAI Service Embeddings-API slaan de azure-openai-semantic-cache-store en azure-openai-semantic-cache-lookup beleidsregels semantisch vergelijkbare voltooiingen van prompts op en halen deze uit de cache. Deze aanpak zorgt ervoor dat voltooiingen opnieuw worden gebruikt, wat resulteert in verminderd tokenverbruik en verbeterde responsprestaties.
Aanbeveling
Als u semantische caching wilt inschakelen voor andere LLM-API's, biedt API Management het equivalente beleid llm-semantic-cache-store-policy en llm-semantic-cache-lookup-policy .
Registratie van tokengebruik, prompts en voltooiingen
Schakel een diagnostische instelling in uw API Management-exemplaar in om aanvragen te registreren die door de gateway zijn verwerkt voor REST API's voor een groot taalmodel. Voor elke aanvraag worden gegevens verzonden naar Azure Monitor, inclusief tokengebruik (prompttokens, voltooiingstokens en totaaltokens), de naam van het gebruikte model en eventueel de aanvraag- en antwoordberichten (prompt en voltooiing). Grote aanvragen en antwoorden worden gesplitst in meerdere logboekvermeldingen die sequentieel worden genummerd voor latere reconstructie, indien nodig.
De API Management-beheerder kan LLM-gatewaylogboeken samen met API Management-gatewaylogboeken gebruiken voor scenario's zoals:
- Gebruik berekenen voor facturering: bereken metrische gebruiksgegevens voor facturering op basis van het aantal tokens dat door elke toepassing of API-consument wordt gebruikt (bijvoorbeeld gesegmenteerd op abonnements-id of IP-adres).
- Berichten inspecteren : om hulp te bieden bij foutopsporing of controle, inspecteert en analyseert u prompts en voltooiingen.
Meer informatie over het bewaken van API Management met Azure Monitor.
Beleid voor inhoudsveiligheid
Als u gebruikers wilt beschermen tegen schadelijke, aanstootgevende of misleidende inhoud, kunt u alle binnenkomende aanvragen automatisch beheren voor een LLM-API door het beleid voor de veiligheid van llm-content te configureren. Het beleid dwingt beveiligingscontroles van inhoud af op LLM-prompts door ze eerst naar de Azure AI Content Safety-service te verzenden voordat ze worden verzonden naar de BACK-end-LLM-API.
Labs en voorbeelden
- Labs voor de AI-gatewaymogelijkheden van Azure API Management
- Workshop ai-gateway
- Azure API Management (APIM) - Azure OpenAI-voorbeeld (Node.js)
- Python-voorbeeldcode voor het gebruik van Azure OpenAI met API Management
Overwegingen voor architectuur en ontwerp
- Referentiearchitectuur voor AI-gateways met API Management
- Ai Hub Gateway-landingszoneversneller
- Een gatewayoplossing ontwerpen en implementeren met Azure OpenAI-resources
- Een gateway gebruiken vóór meerdere Azure OpenAI-implementaties of -exemplaren
Gerelateerde inhoud
- Blog: Inleiding tot AI-mogelijkheden in Azure API Management
- Blog: Azure Content Safety integreren met API Management voor Azure OpenAI-eindpunten
- Training: Uw generatieve AI-API's beheren met Azure API Management
- Slimme taakverdeling voor OpenAI-eindpunten en Azure API Management
- Toegang tot Azure OpenAI-API's verifiëren en autoriseren met behulp van Azure API Management