Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: Alla API Management-nivåer
Aktivera semantisk cachelagring av svar på LLM 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 frågor och även för frågor som liknar detta, även om texten inte är identisk. Bakgrund finns i Självstudie: Använda Azure Managed Redis som en semantisk cache.
Anmärkning
Konfigurationsstegen i den här artikeln visar hur du aktiverar semantisk cachelagring för API:er som lagts till i API Management från Azure OpenAI i Azure AI Foundry-modeller. Du kan använda liknande steg 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 eller med OpenAI-kompatibla modeller som hanteras via tredjeparts slutsatsdragningsproviders.
Förutsättningar
Lägg till en eller flera Azure OpenAI i Azure AI Foundry-modelldistributioner som API:er i din API Management-instans. Mer information finns i Lägga till ett Azure OpenAI-API i Azure API Management.
Skapa distributioner för följande API:er:
- API för slutförande av chatt – Distribution som används för API-konsumentanrop
- API för inbäddning – distribution som används för semantisk cachelagring
Konfigurera API Management-instansen så att den använder hanterad identitetsautentisering till Azure OpenAI-API:erna. Mer information finns i Autentisera och auktorisera åtkomst till Azure OpenAI-API:er med Azure API Management .
En Azure Managed Redis-instans med RediSearch-modulen aktiverad i Redis-cachen.
Anmärkning
Du kan bara aktivera RediSearch-modulen när du skapar en ny Azure Managed Redis-cache. Du kan inte lägga till en modul i en befintlig cache. Läs mer
Konfigurera Azure Managed Redis-instansen som en extern cache i Azure API Management-instansen. Anvisningar finns i Använda en extern Redis-kompatibel cache i Azure API Management.
Test chat-API-distribution
Testa först Azure OpenAI-distributionen för att se till att API:et för chattens slutförande eller chatt-API:et 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
Skapa 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, ungefär som:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings(utan frågeparametrar).Autentiseringsuppgifter för auktorisering – Gå till fliken Hanterad identitet .
- Klientidentitet – Välj Systemtilldelad identitet eller ange ett användartilldelat klient-ID för hanterad identitet.
-
Resurs-ID – Ange
https://cognitiveservices.azure.com/för Azure OpenAI.
Testa backend för inbäddningar
Om du vill testa serverdelen för inbäddningar skapar du en API-åtgärd för ditt Azure OpenAI-API:
- På fliken Design i ditt API väljer du + Lägg till åtgärd.
- Ange ett visningsnamn , till exempel Inbäddningar 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-Typeoch värdetapplication/json. - Välj Spara.
Konfigurera följande principer i avsnittet Inkommande bearbetning i API-åtgärden. I policyn set-backend-service, ersätt namnet på den serverdel 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. Exempelsvar:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Konfigurera principer för semantisk cachelagring
Om du vill aktivera semantisk cachelagring för Azure OpenAI-API:er i Azure API Management använder du följande principer: en för att kontrollera cachen innan begäranden skickas (sökning) och en annan för att lagra svar för framtida återanvändning (arkiv):
I avsnittet Inkommande bearbetning för API:et lägger du till principen azure-openai-semantic-cache-lookup .
embeddings-backend-idI attributet anger du serverdelen för API för inbäddningar som du skapade.Anmärkning
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.15" embeddings-backend-id="embeddings-backend" 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> <rate-limit calls="10" renewal-period="60" />Anmärkning
Den hastighetsbegränsningsprincip som lagts till efter cachesökningen hjälper till att begränsa antalet anrop för att förhindra överlagring på serverdelstjänsten om cachen inte är tillgänglig.
I avsnittet Utgående bearbetning för API:et lägger du till principen azure-openai-semantic-cache-store .
Anmärkning
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
För att 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änds vid efterföljande försök genom att granska spårningen. Läs mer om att spåra API-anrop i Azure API Management.
score-threshold Justera attributet i uppslagsprincipen för att styra hur nära en inkommande fråga måste matcha en cachelagrad uppmaning för att returnera dess lagrade svar. Ett tröskelvärde för lägre poäng innebär att uppmaningar måste ha högre semantisk likhet för att returnera cachelagrade svar. Frågor med poäng över tröskelvärdet använder inte det cachelagrade svaret.
Om cachen till exempel används innehåller avsnittet Utdata poster som liknar följande skärmbild:
Relaterat innehåll
- Cachelagringsprinciper
- Azure Managed Redis
- AI-gatewayfunktioner i Azure API Management