Condividi tramite


Abilitare la memorizzazione nella cache semantica per le API Azure OpenAI in Gestione API di Azure

SI APPLICA A: Tutti i livelli di Gestione API

Abilitare la memorizzazione nella cache semantica di richieste API OpenAI per ridurre la larghezza di banda e i requisiti di elaborazione imposti sull'API back-end e ridurre la latenza percepita dagli utenti delle API. Con la memorizzazione nella cache semantica, è possibile restituire risposte memorizzate nella cache per richieste identiche e per richieste simili, anche se il testo non è lo stesso. Per informazioni generali, vedere Esercitazione: usare Cache Redis di Azure come cache semantica.

Nota

I passaggi di configurazione descritti in questo articolo consentono la memorizzazione nella cache semantica per le API OpenAI di Azure. Questi passaggi possono essere generalizzati per abilitare la memorizzazione nella semantica per le API LLM (Large Language Model) corrispondenti disponibili tramite l'API di inferenza del modello di intelligenza artificiale di Azure.

Prerequisiti

Testare la distribuzione dell'API Chat

Prima di tutto, testare la distribuzione di Azure OpenAI per assicurarsi che l'API Completamento chat o l'API Chat funzioni come previsto. Per la procedura, vedere Importare un'API Azure OpenAI in Gestione API di Azure.

Ad esempio, testare l'API OpenAI Chat di Azure inviando una richiesta POST all'endpoint API con una richiesta nel corpo della richiesta. La risposta deve includere il completamento della richiesta. Richiesta di esempio:

POST https://my-api-management.azure-api.net/my-api/openai/deployments/chat-deployment/chat/completions?api-version=2024-02-01

con il seguente corpo della richiesta:

{"messages":[{"role":"user","content":"Hello"}]}

Quando la richiesta ha esito positivo, la risposta include un completamento per il messaggio di chat.

Creare un back-end per l'API di incorporamento

Configurare una risorsa back-end per la distribuzione dell'API embeddings con le impostazioni seguenti:

  • Nome - Il nome che si desidera, ad esempio embeddings-backend. Questo nome viene usato per fare riferimento al back-end nei criteri.
  • Tipo : selezionare URL personalizzato.
  • URL di runtime: URL della distribuzione dell'API embeddings nel servizio Azure OpenAI, simile a: https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings

Test backend

Per testare il back-end, creare un'operazione API per l'API del servizio Azure OpenAI:

  1. Nella scheda Progettazione dell'API selezionare + Aggiungi operazione.
  2. Immettere un nome visualizzato e opzionalmente un nome per l'operazione.
  3. Nella sezione Front-end, in URL, selezionare POST e immettere il percorso /.
  4. Nella scheda Intestazioni aggiungere un'intestazione obbligatoria con il nome Content-Type e il valore application/json.
  5. Seleziona Salva

Configurare i criteri seguenti nella sezione Elaborazione in ingresso dell'operazione API. Nei criteri set-backend-service sostituire il nome del back-end creato.

<policies>
    <inbound>
        <set-backend-service backend-id="embeddings-backend" />
        <authentication-managed-identity resource="https://cognitiveservices.azure.com/" />
        [...]
    </inbound>
    [...]
</policies>

Nella scheda Test testare l'operazione aggiungendo un parametro di query api-version con valore, ad esempio 2024-02-01. Specificare un corpo della richiesta valido. Ad esempio:

{"input":"Hello"}

Se la richiesta ha esito positivo, la risposta include una rappresentazione vettoriale del testo di input:

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

Configurare i criteri di memorizzazione nella cache semantica

Configurare i seguenti criteri per abilitare la memorizzazione nella cache semantica per API Azure OpenAI in Gestione API di Azure:

  • Nella sezione Elaborazione in ingresso per l'API aggiungere i criteri azure-openai-semantic-cache-lookup. Nell'attributo embeddings-backend-id specificare il back-end dell'API Incorporamenti creato.

    Nota

    Quando si abilita la memorizzazione nella cache semantica per altre API del modello linguistico di grandi dimensioni, usare invece i criteri llm-semantic-cache-lookup .

    Esempio:

    <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>
    
    
  • Nella sezione Elaborazione in uscita per l'API aggiungere i criteri azure-openai-semantic-cache-store.

    Nota

    Quando si abilita la memorizzazione nella cache semantica per altre API del modello linguistico di grandi dimensioni, usare invece i criteri llm-semantic-cache-store .

    Esempio:

    <azure-openai-semantic-cache-store duration="60" />
    

Confermare la memorizzazione nella cache

Per verificare che la memorizzazione nella cache semantica funzioni come previsto, tracciare un'operazione di completamento del test o completamento della chat usando la console di test nel portale. Verificare che la cache sia stata usata nei tentativi successivi esaminando la traccia. Altre informazioni sulla traccia delle chiamate API in Gestione API di Azure.

Ad esempio, se è stata usata la cache, la sezione Output include voci simili a quelle nello screenshot seguente:

Screenshot della traccia delle richieste nel portale di Azure.