Aktivera semantisk cachelagring för Azure OpenAI-API:er i Azure API Management
GÄLLER FÖR: Alla API Management-nivåer
Aktivera semantisk cachelagring av svar på Azure OpenAI API-begäranden för att minska bandbredds- och bearbetningskraven för serverdels-API:er och lägre svarstid som uppfattas av API-konsumenter. Med semantisk cachelagring kan du returnera cachelagrade svar för identiska prompter och även för frågor som är liknande, även om texten inte är densamma. Bakgrund finns i Självstudie: Använda Azure Cache for Redis som en semantisk cache.
Kommentar
Konfigurationsstegen i den här artikeln aktiverar semantisk cachelagring för Azure OpenAI-API:er. De här stegen kan generaliseras för att aktivera semantisk cachelagring för motsvarande API:er för stora språkmodeller (LLM) som är tillgängliga via AZURE AI Model Inference API.
Förutsättningar
- En eller flera API:er för Azure OpenAI-tjänsten måste läggas till i DIN API Management-instans. Mer information finns i Lägga till ett Azure OpenAI-tjänst-API i Azure API Management.
- Azure OpenAI-tjänsten måste ha distributioner för följande:
- API för chattslutsättning (eller API för slutförande) – Distribution som används för API-konsumentanrop
- API för inbäddning – distribution som används för semantisk cachelagring
- API Management-instansen måste konfigureras för att använda hanterad identitetsautentisering till Azure OpenAI-API:erna. Mer information finns i Autentisera och auktorisera åtkomst till Azure OpenAI-API:er med Azure API Management .
- Azure Cache for Redis Enterprise. RediSearch-modulen måste vara aktiverad i Redis Enterprise-cachen.
Kommentar
Du kan bara aktivera RediSearch-modulen när du skapar en ny Redis Enterprise-cache. Du kan inte lägga till en modul i en befintlig cache. Läs mer
- Extern cache som konfigurerats i Azure API Management-instansen. Anvisningar finns i Använda en extern Azure Cache for Redis i Azure API Management.
Test chat-API-distribution
Testa först Azure OpenAI-distributionen för att säkerställa att API:et för chattens slutförande eller chatt-API fungerar som förväntat. Anvisningar finns i Importera ett Azure OpenAI API till Azure API Management.
Testa till exempel Azure OpenAI Chat-API:et genom att skicka en POST-begäran till API-slutpunkten med en uppmaning i begärandetexten. Svaret bör innehålla slutförandet av uppmaningen. Exempelbegäran:
POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01
med begärandetext:
{"messages":[{"role":"user","content":"Hello"}]}
När begäran lyckas innehåller svaret ett slutförande för chattmeddelandet.
Skapa en serverdel för inbäddnings-API
Konfigurera en serverdelsresurs för inbäddnings-API-distributionen med följande inställningar:
- Namn – ett valfritt namn, till exempel
embeddings-backend
. Du använder det här namnet för att referera till serverdelen i principer. - Typ – Välj anpassad URL.
- Körnings-URL – URL:en för inbäddnings-API-distributionen i Azure OpenAI-tjänsten, ungefär så här:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings
Testa serverdelen
Om du vill testa serverdelen skapar du en API-åtgärd för ditt Azure OpenAI Service API:
- På fliken Design i ditt API väljer du + Lägg till åtgärd.
- Ange ett visningsnamn och eventuellt ett Namn för åtgärden.
- I avsnittet Klientdel i URL väljer du POST och anger sökvägen
/
. - På fliken Rubriker lägger du till en obligatorisk rubrik med namnet
Content-Type
och värdetapplication/json
. - Välj Spara
Konfigurera följande principer i avsnittet Inkommande bearbetning i API-åtgärden. I principen set-backend-service ersätter du namnet på den serverdel som du skapade.
<policies>
<inbound>
<set-backend-service backend-id="embeddings-backend" />
<authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
[...]
</inbound>
[...]
</policies>
På fliken Test testar du åtgärden genom att lägga till en api-version
frågeparameter med värdet , till exempel 2024-02-01
. Ange en giltig begärandetext. Till exempel:
{"input":"Hello"}
Om begäran lyckas innehåller svaret en vektorrepresentation av indatatexten:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Konfigurera principer för semantisk cachelagring
Konfigurera följande principer för att aktivera semantisk cachelagring för Azure OpenAI-API:er i Azure API Management:
I avsnittet Inkommande bearbetning för API:et lägger du till principen azure-openai-semantic-cache-lookup .
embeddings-backend-id
I attributet anger du serverdelen för API för inbäddningar som du skapade.Kommentar
När du aktiverar semantisk cachelagring för andra API:er för stora språkmodeller använder du principen llm-semantic-cache-lookup i stället.
Exempel:
<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>
I avsnittet Utgående bearbetning för API:et lägger du till principen azure-openai-semantic-cache-store .
Kommentar
När du aktiverar semantisk cachelagring för andra API:er för stora språkmodeller använder du principen llm-semantic-cache-store i stället.
Exempel:
<azure-openai-semantic-cache-store duration="60" />
Bekräfta cachelagring
Om du vill bekräfta att semantisk cachelagring fungerar som förväntat kan du spåra en teståtgärd för slutförande eller chatt med hjälp av testkonsolen i portalen. Bekräfta att cachen användes vid efterföljande försök genom att inspektera spårningen. Läs mer om att spåra API-anrop i Azure API Management.
Om cachen till exempel användes innehåller avsnittet Utdata poster som liknar dem i följande skärmbild:
Relaterat innehåll
- Cachelagringsprinciper
- Azure Cache for Redis
- GenAI-gatewayfunktioner i Azure API Management