Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A: tutti i livelli di Gestione API
Abilitare la memorizzazione semantica nella cache delle risposte alle richieste api LLM per ridurre i requisiti di larghezza di banda ed elaborazione imposti sulle API back-end e ridurre la latenza percepita dai consumer dell'API. Con la memorizzazione nella cache semantica, è possibile restituire risposte memorizzate nella cache per richieste identiche e anche per le richieste simili, anche se il testo non è identico. Per informazioni generali, vedere Esercitazione: Usare Redis gestito di Azure come cache semantica.
Note
I passaggi di configurazione descritti in questo articolo illustrano come abilitare la memorizzazione nella cache semantica per le API aggiunte a Gestione API da Azure OpenAI nei modelli di Microsoft Foundry. È possibile applicare passaggi simili per abilitare la memorizzazione nella cache semantica per le API LLM (Large Language Model) corrispondenti disponibili tramite l'API inferenza del modello di intelligenza artificiale di Azure o con modelli compatibili con OpenAI gestiti tramite provider di inferenza di terze parti.
Prerequisiti
Aggiungere una o più distribuzioni modelli di OpenAI di Azure come API alla istanza di Gestione API di Microsoft Foundry. Per altre informazioni, vedere Aggiungere un'API OpenAI di Azure a Gestione API di Azure.
Creare distribuzioni per le API seguenti:
- API Completamento chat: distribuzione usata per le chiamate consumer dell'API
- API Incorporamenti - Distribuzione usata per la memorizzazione nella cache semantica
Configurare l'istanza di Gestione API per usare l'autenticazione dell'identità gestita per le API OpenAI di Azure. Per altre informazioni, vedere Autenticare e autorizzare l'accesso alle API Azure OpenAI usando Gestione API di Azure.
Istanza di Redis gestita di Azure con il modulo RediSearch abilitato nella cache Redis.
Note
È possibile abilitare il modulo RediSearch solo quando si crea una nuova cache Redis gestita di Azure. Non è possibile aggiungere un modulo a una cache esistente. Altre informazioni
Configurare l'istanza di Redis gestita di Azure come cache esterna nell'istanza di Gestione API di Azure. Per la procedura, vedere Usare una cache esterna compatibile con 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 di completamento della chat o l'API di 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 Incorporamenti
Creare una risorsa back-end per la distribuzione dell'API embeddings con le impostazioni seguenti:
Nome : nome preferito, 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 in Azure OpenAI, simile a:
https://my-aoai.openai.azure.com/openai/deployments/embeddings-deployment/embeddings(senza parametri di query).Credenziali di autorizzazione : passare alla scheda Identità gestita .
- Identità client : selezionare Identità assegnata dal sistema o immettere un ID client di identità gestita assegnato dall'utente.
-
ID risorsa : immettere
https://cognitiveservices.azure.com/per Azure OpenAI.
Back-end di incorporamenti di test
Per testare il back-end di incorporamenti, creare un'operazione API per l'API OpenAI di Azure:
- Nella scheda Progettazione dell'API selezionare + Aggiungi operazione.
- Immettere un nome visualizzato, ad esempio Embeddings e facoltativamente 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-Typee 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. Risposta di esempio:
{
"object": "list",
"data": [{
"object": "embedding",
"index": 0,
"embedding": [
-0.021829502,
-0.007157768,
-0.028619017,
[...]
]
}]
}
Configurare i criteri di memorizzazione nella cache semantica
Per abilitare la memorizzazione nella cache semantica per le API di Azure OpenAI in Gestione API di Azure, applicare i criteri seguenti: uno per controllare la cache prima di inviare richieste (ricerca) e un'altra per archiviare le risposte per il riutilizzo futuro (archivio):
Nella sezione Elaborazione in ingresso per l'API aggiungere i criteri azure-openai-semantic-cache-lookup. Nell'attributo
embeddings-backend-idspecificare il back-end dell'API Incorporamenti creato.Note
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.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" />Note
Aggiungi una policy di limite di velocità (o politica limite di velocità per chiave ) dopo la ricerca della cache per aiutare a limitare il numero di chiamate e prevenire sovraccarichi sul servizio backend nel caso in cui la cache non sia disponibile.
Nella sezione Elaborazione in uscita per l'API aggiungere i criteri azure-openai-semantic-cache-store.
Note
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 chat usando la console di test nel portale. Verificare che la cache venga usata nei tentativi successivi esaminando la traccia. Altre informazioni sulla traccia delle chiamate API in Gestione API di Azure.
Modificare l'attributo score-threshold nei criteri di ricerca per controllare la modalità con cui un prompt in ingresso deve corrispondere a un prompt memorizzato nella cache per restituire la risposta archiviata. Una soglia di punteggio inferiore indica che le richieste devono avere una maggiore somiglianza semantica per restituire risposte memorizzate nella cache. I prompt con punteggi superiori alla soglia non usano la risposta memorizzata nella cache.
Ad esempio, se viene usata la cache, la sezione Output include voci simili allo screenshot seguente: