Delen via


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

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. Voor achtergrond, zie Zelfstudie: Gebruik Azure Cache voor Redis 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 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 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 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

Configureer een back-endresource voor de embedding API-implementatie 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

  • Autorisatiereferenties - ga naar het tabblad Beheerde Identiteit .

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

Back-end testen

Als u de back-end 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 en desgewenst een naam voor de bewerking in.
  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:

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

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 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:

Schermopname van aanvraagtracering in Azure Portal.