Delen via


Semantische caching inschakelen voor LLM-API's in Azure API Management

TOEPASSING OP: Alle API Management-lagen

Schakel semantische caching van reacties op LLM API-aanvragen in om de 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 identiek is. Zie Handleiding: Azure Managed Redis gebruiken als een semantische cache voor achtergrondinformatie.

Notitie

De configuratiestappen in dit artikel laten zien hoe u semantische caching inschakelt voor API's die zijn toegevoegd aan API Management vanuit Azure OpenAI in Azure AI Foundry-modellen. U kunt vergelijkbare stappen toepassen om semantische caching in te schakelen voor bijbehorende LLM-API's (Large Language Model) die beschikbaar zijn via de Azure AI-modeldeductie-API of met openAI compatibele modellen die worden geleverd via externe deductieproviders.

Vereisten

Implementatie van chat-API testen

Test eerst de Azure OpenAI-implementatie om ervoor te zorgen dat de chatvoltooiings-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 aanvraaginhoud:

{"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

Maak een backend resource voor de implementatie van de embeddings API 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 Azure OpenAI, vergelijkbaar met: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings (zonder queryparameters).

  • Autorisatiereferenties - ga naar het tabblad Beheerde Identiteit .

    • Clientidentiteit : selecteer door het systeem toegewezen identiteit of voer een door de gebruiker toegewezen client-id voor beheerde identiteit in.
    • Resource-id - Voer in https://cognitiveservices.azure.com/ voor Azure OpenAI.

Back-end voor embeddings testen

Als u de back-end voor insluitingen wilt testen, maakt u een API-bewerking voor uw Azure OpenAI-API:

  1. Selecteer op het tabblad Ontwerpen van uw API de optie + Bewerking toevoegen.
  2. Voer een weergavenaam in, zoals Insluitingen en eventueel een naam voor de bewerking.
  3. Selecteer in.
  4. Voeg op het tabblad Kopteksten een vereiste koptekst toe met de naam Content-Type en waarde application/json.
  5. 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 geldig verzoeklichaam op. Voorbeeld:

{"input":"Hello"}

Als de aanvraag is geslaagd, bevat het antwoord een vectorweergave van de invoertekst. Voorbeeldantwoord:

{
    "object": "list",
    "data": [{
        "object": "embedding",
        "index": 0,
        "embedding": [
            -0.021829502,
            -0.007157768,
            -0.028619017,
            [...]
        ]
    }]
}

Semantisch cachebeleid configureren

Als u semantische caching wilt inschakelen voor Azure OpenAI-API's in Azure API Management, past u het volgende beleid toe: een om de cache te controleren voordat aanvragen worden verzonden (zoekactie) en een andere om antwoorden op te slaan voor toekomstig hergebruik (store):

  • 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.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" />
    

    Notitie

    Het beleid voor frequentielimiet dat na het cache-opzoekproces is toegevoegd, helpt het aantal aanroepen te beperken om te voorkomen dat de backendservice overbelast raakt ingeval de cache niet beschikbaar is.

  • 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" />
    

Bevestig cache-opslag

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 wordt gebruikt bij volgende pogingen door de tracering te inspecteren. Meer informatie over het traceren van API-aanroepen in Azure API Management.

Pas het score-threshold kenmerk in het opzoekbeleid aan om te bepalen hoe nauwkeurig een binnenkomende prompt moet overeenkomen met een prompt in de cache om het opgeslagen antwoord te retourneren. Een lagere scoredrempel betekent dat prompts een hogere semantische gelijkenis moeten hebben om reacties in de cache te retourneren. Vragen met scores boven de drempelwaarde maken geen gebruik van het antwoord in de cache.

Als de cache bijvoorbeeld wordt gebruikt, bevat de sectie Uitvoer vermeldingen die vergelijkbaar zijn met de volgende schermopname:

Schermopname van aanvraagtracering in Azure Portal.