Abilitare la memorizzazione nella cache semantica per le API Azure OpenAI in Gestione API di Azure
SI APPLICA A: Basic v2 | Standard v2
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
- È necessario aggiungere una o più API del servizio Azure OpenAI all'istanza di Gestione API. Per altre informazioni, vedere Aggiungere un'API del servizio Azure OpenAI a Gestione API di Azure.
- Il servizio Azure OpenAI deve avere distribuzioni per quanto segue:
- API Completamento chat (o API di completamento): distribuzione usata per le chiamate consumer dell'API
- API Incorporamenti - Distribuzione usata per la memorizzazione nella cache semantica
- L'istanza di Gestione API deve essere configurata per usare l'autenticazione dell'identità gestita per le API Azure OpenAI. Per altre informazioni, vedere Autenticare e autorizzare l'accesso alle API Azure OpenAI usando Gestione API di Azure.
- Cache di Azure per Redis Enterprise. Il modulo RediSearch deve essere abilitato nella cache Redis Enterprise.
Nota
È possibile abilitare il modulo RediSearch solo quando si crea una nuova cache Redis Enterprise. Non è possibile aggiungere un modulo a una cache esistente. Ulteriori informazioni
- Cache esterna configurata nell'istanza di Gestione API di Azure. Per la procedere vedere Usare una cache di Azure esterna per Redis in Gestione API di Azure.
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:
- Nella scheda Progettazione dell'API selezionare + Aggiungi operazione.
- Immettere un nome visualizzato e opzionalmente un nome per l'operazione.
- Nella sezione Front-end, in URL, selezionare POST e immettere il percorso
/
. - Nella scheda Intestazioni aggiungere un'intestazione obbligatoria con il nome
Content-Type
e il valoreapplication/json
. - 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: