Dela via


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

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:

  1. På fliken Design i ditt API väljer du + Lägg till åtgärd.
  2. Ange ett visningsnamn och eventuellt ett Namn för åtgärden.
  3. I avsnittet Klientdel i URL väljer du POST och anger sökvägen /.
  4. På fliken Rubriker lägger du till en obligatorisk rubrik med namnet Content-Type och värdet application/json.
  5. 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:

Skärmbild av spårning av begäran i Azure Portal.