Semantische caching inschakelen voor Azure OpenAI-API's in Azure API Management
VAN TOEPASSING OP: Alle API Management-lagen
Schakel semantische caching van reacties op Azure OpenAI API-aanvragen in om bandbreedte- en verwerkingsvereisten te verminderen die zijn opgelegd aan de back-end-API's en een lagere latentie die wordt waargenomen door API-gebruikers. Met semantische caching kunt u antwoorden in de cache retourneren voor identieke prompts en ook voor prompts die vergelijkbaar zijn, zelfs als de tekst niet hetzelfde is. Zie Zelfstudie voor achtergrond: Azure Cache voor Redis gebruiken als een semantische cache.
Notitie
Met de configuratiestappen in dit artikel kunt u semantische caching inschakelen voor Azure OpenAI-API's. Deze stappen kunnen worden gegeneraliseerd om semantische caching in te schakelen voor bijbehorende LLM-API's (Large Language Model) die beschikbaar zijn via de Azure AI-modeldeductie-API.
Vereisten
- Een of meer Azure OpenAI Service-API's moeten worden toegevoegd aan uw API Management-exemplaar. Zie Een Azure OpenAI-service-API toevoegen aan Azure API Management voor meer informatie.
- De Azure OpenAI-service moet implementaties hebben voor het volgende:
- Api voor voltooiing van chat (of voltooiings-API) - Implementatie die wordt gebruikt voor API-consumentenoproepen
- Api voor insluiten - Implementatie die wordt gebruikt voor semantische caching
- Het API Management-exemplaar moet worden geconfigureerd voor het gebruik van verificatie van beheerde identiteiten voor de Azure OpenAI-API's. Zie Verifiëren en autoriseren van toegang tot Azure OpenAI-API's met behulp van Azure API Management voor meer informatie.
- Azure Cache voor Redis Enterprise. De RediSearch-module moet zijn ingeschakeld in de Redis Enterprise-cache.
Notitie
U kunt de RediSearch-module alleen inschakelen bij het maken van een nieuwe Redis Enterprise-cache. U kunt geen module toevoegen aan een bestaande cache. Meer informatie
- Externe cache die is geconfigureerd in het Azure API Management-exemplaar. Zie Een externe Azure Cache voor Redis gebruiken in Azure API Management voor stappen.
Implementatie van chat-API testen
Test eerst de Azure OpenAI-implementatie om ervoor te zorgen dat de CHAT-voltooiings-API of Chat-API werkt zoals verwacht. Zie Een Azure OpenAI-API importeren in Azure API Management voor stappen.
Test bijvoorbeeld de Azure OpenAI Chat-API door een POST-aanvraag naar het API-eindpunt te verzenden met een prompt in de aanvraagbody. Het antwoord moet de voltooiing van de prompt bevatten. Voorbeeldaanvraag:
POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01
met aanvraagbody:
{"messages":[{"role":"user","content":"Hello"}]}
Wanneer de aanvraag is geslaagd, bevat het antwoord een voltooiing voor het chatbericht.
Een back-end maken voor het insluiten van de API
Configureer een back-endresource voor de implementatie van de API voor insluiten met de volgende instellingen:
- Naam : een naam van uw keuze, zoals
embeddings-backend
. U gebruikt deze naam om te verwijzen naar de back-end in beleidsregels. - Type - Aangepaste URL selecteren.
- Runtime-URL : de URL van de insluitings-API-implementatie in de Azure OpenAI-service, vergelijkbaar met:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings
Back-end testen
Als u de back-end wilt testen, maakt u een API-bewerking voor uw Azure OpenAI-service-API:
- Selecteer op het tabblad Ontwerpen van uw API de optie + Bewerking toevoegen.
- Voer een weergavenaam en desgewenst een naam voor de bewerking in.
- Selecteer POST in de sectie Front-end, in de URL, en voer het pad
/
in. - Voeg op het tabblad Kopteksten een vereiste koptekst toe met de naam
Content-Type
en waardeapplication/json
. - Selecteer Opslaan
Configureer het volgende beleid in de sectie Binnenkomende verwerking van de API-bewerking. Vervang in het set-backend-servicebeleid de naam van de back-end die u hebt gemaakt.
<policies>
<inbound>
<set-backend-service backend-id="embeddings-backend" />
<authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
[...]
</inbound>
[...]
</policies>
Test de bewerking op het tabblad Testen door een api-version
queryparameter met waarde toe te voegen, zoals 2024-02-01
. Geef een geldige aanvraagtekst op. Voorbeeld:
{"input":"Hello"}
Als de aanvraag is geslaagd, bevat het antwoord een vectorweergave van de invoertekst:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Semantisch cachebeleid configureren
Configureer het volgende beleid om semantische caching in te schakelen voor Azure OpenAI-API's in Azure API Management:
Voeg in de sectie Binnenkomende verwerking voor de API het beleid azure-openai-semantic-cache-lookup toe. Geef in het
embeddings-backend-id
kenmerk de back-end embeddings-API op die u hebt gemaakt.Notitie
Wanneer u semantische caching inschakelt voor andere API's voor grote taalmodellen, gebruikt u in plaats daarvan het beleid llm-semantic-cache-lookup .
Voorbeeld:
<azure-openai-semantic-cache-lookup score-threshold="0.8" embeddings-backend-id="embeddings-deployment" embeddings-backend-auth="system-assigned" ignore-system-messages="true" max-message-count="10"> <vary-by>@(context.Subscription.Id)</vary-by> </azure-openai-semantic-cache-lookup>
Voeg in de sectie Uitgaande verwerking voor de API het beleid azure-openai-semantic-cache-store toe.
Notitie
Wanneer u semantische caching inschakelt voor andere API's voor grote talen, gebruikt u in plaats daarvan het beleid llm-semantic-cache-store .
Voorbeeld:
<azure-openai-semantic-cache-store duration="60" />
Opslaan in cache bevestigen
Om te bevestigen dat semantische caching werkt zoals verwacht, traceert u een testvoltooiings- of chatvoltooiingsbewerking met behulp van de testconsole in de portal. Controleer of de cache is gebruikt bij volgende pogingen door de tracering te inspecteren. Meer informatie over het traceren van API-aanroepen in Azure API Management.
Als de cache bijvoorbeeld is gebruikt, bevat de sectie Uitvoer vermeldingen die vergelijkbaar zijn met items in de volgende schermopname:
Gerelateerde inhoud
- Cachebeleidsregels
- Azure Cache voor Redis
- GenAI-gatewaymogelijkheden in Azure API Management