Delen via


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

VAN 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. Zie Zelfstudie voor achtergrond: Azure Cache voor Redis gebruiken 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.

Vereisten

  • Een of meer Azure OpenAI Service-API's moeten worden toegevoegd aan uw API Management-exemplaar. Zie Een Azure OpenAI-service-API toevoegen aan Azure API Management voor meer informatie.
  • De Azure OpenAI-service moet implementaties hebben voor het volgende:
    • Api voor voltooiing van chat (of voltooiings-API) - Implementatie die wordt gebruikt voor API-consumentenoproepen
    • Api voor insluiten - Implementatie die wordt gebruikt voor semantische caching
  • Het API Management-exemplaar moet worden geconfigureerd voor het gebruik van verificatie van beheerde identiteiten voor de Azure OpenAI-API's. Zie Verifiëren en autoriseren van toegang tot Azure OpenAI-API's met behulp van Azure API Management voor meer informatie.
  • Azure Cache voor Redis Enterprise. De RediSearch-module moet zijn ingeschakeld in de Redis Enterprise-cache.

    Notitie

    U kunt de RediSearch-module alleen inschakelen bij het maken van een nieuwe Redis Enterprise-cache. U kunt geen module toevoegen aan een bestaande cache. Meer informatie

  • Externe cache die is geconfigureerd in het Azure API Management-exemplaar. Zie Een externe Azure Cache voor Redis gebruiken in Azure API Management voor stappen.

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

{"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 implementatie van de API voor insluiten 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 de Azure OpenAI-service, vergelijkbaar met: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings

Back-end testen

Als u de back-end wilt testen, maakt u een API-bewerking voor uw Azure OpenAI-service-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 POST in de sectie Front-end, in de URL, en voer het pad / 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 geldige aanvraagtekst 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

Configureer het volgende beleid om semantische caching in te schakelen voor Azure OpenAI-API's in Azure API Management:

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

Opslaan in cache bevestigen

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.